Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
RS63053B1 - Inicijalizacija konteksta u entropijskom kodiranju - Google Patents
[go: Go Back, main page]

RS63053B1 - Inicijalizacija konteksta u entropijskom kodiranju - Google Patents

Inicijalizacija konteksta u entropijskom kodiranju

Info

Publication number
RS63053B1
RS63053B1 RS20220220A RSP20220220A RS63053B1 RS 63053 B1 RS63053 B1 RS 63053B1 RS 20220220 A RS20220220 A RS 20220220A RS P20220220 A RSP20220220 A RS P20220220A RS 63053 B1 RS63053 B1 RS 63053B1
Authority
RS
Serbia
Prior art keywords
bin
probability
decoder
bit
syntax elements
Prior art date
Application number
RS20220220A
Other languages
English (en)
Inventor
Valeri George
Benjamin Bross
Heiner Kirchhoffer
Detlev Marpe
Tung Nguyen
Matthias Preiss
Mischa Siekmann
Jan Stegemann
Thomas Wiegand
Original Assignee
Ge Video Compression Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46319135&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RS63053(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Ge Video Compression Llc filed Critical Ge Video Compression Llc
Publication of RS63053B1 publication Critical patent/RS63053B1/sr

Links

Classifications

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

Landscapes

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

Description

Opis
[0001] Predmetni pronalazak se bavi konceptom entropijskog kodiranja za kodiranje video podataka.
[0002] Mnogi video kodeci su poznati u tehnici. Generalno, ovi kodeci smanjuju količinu podataka neophodnih za predstavljanje video sadržaja, odnosno komprimuju podatke. U entropijskom kodiranju, bitno je kodirati simbole koristeći procenu verovatnoće koja odgovara stvarnoj statistici simbola što je bliže moguće. Procena verovatnoće povezuje vrednost verovatnoće sa svakom mogućom vrednošću koju simboli za kodiranje mogu imati. U slučaju binarnog entropijskog kodiranja, na primer, simboli su binarne prirode i postoje samo dve takve moguće vrednosti. U slučaju video kodiranja, simboli koji se kodiraju pripadaju različitim elementima sintakse koji ispunjavaju različite zadatke kako bi opisali video sadržaj: postoje razlike u vektorima kretanja, načini kodiranja, nivoi koeficijenta transformacije koji predstavljaju rezidual predviđanja i tako dalje. Pre svega, svi ovi elementi sintakse imaju različit domen mogućih vrednosti, pa čak i oni koji su definisani na istom domenu mogućih vrednosti, najverovatnije pokazuju različit histogram frekvencije u ovom domenu mogućih vrednosti. Shodno tome, simboli/binovi nizova simbola/bin nizova simbolizacije/binarizacije ovih elemenata sintakse takođe pokazuju različite statistike u vezi sa raspodelom verovatnoće po alfabetu simbola. Shodno tome, koristi se kontekstualno adaptivno entropijsko kodiranje: prvo se daju različiti konteksti sa svakim kontekstom koji je povezan sa različitom procenom verovatnoće. Shodno tome, izvodljivo je, na primer, dodeliti binove različitih elemenata sintakse sa različitim kontekstima. Čak se i prostorni međusobni odnosi između binova/simbola sintaksnih elemenata koji se tiču susednih delova slike videa mogu iskoristiti da bi se biralo između različitih ponuđenih konteksta. Ovom merom moguće je klasifikovati binove/simbole u grupe, čija se statistika simbola takođe menja za različite video sadržaje. Osim toga, međutim, procene verovatnoće povezane sa ovim kontekstima se kontinuirano prilagođavaju stvarnoj statistici simbola tokom kodiranja.
[0003] Iz gornjeg opisa direktno proizilazi da je važno pažljivo dizajnirati kontekste i na odgovarajući način inicijalizovati procene verovatnoće konteksta. Na primer, ako bi broj konteksta bio previsok, prilagođavanje procene verovatnoće ne bi uspelo zbog toga što je učestanost simbola unutar pojedinačnog konteksta preniska. S druge strane, ako je broj konteksta previše nizak, simboli prikupljeni u okviru pojedinačnih konteksta, u stvari, imaju različite statistike i procena verovatnoće neće uspeti da bliže aproksimira stvarnu statistiku simbola svih ovih simbola unutar odgovarajućeg konteksta. Što se tiče inicijalizacije procene verovatnoće, isto se može dobiti izvođenjem neke pripremne faze u okviru koje je reprezentativna mešavina video sadržaja predmet kodiranja kako bi se proučavala statistika uzorka elemenata sintakse. Ovom prilikom je iskorišćeno, na primer, u H.264 da statistika simbola simbola različitih konteksta H.264 delimično pokazuje zavisnost od parametra kvantizacije QP, koje enkoder bira za pojedinačne isečke videa. Shodno tome, u H.264 je korišćena inicijalizacija procene verovatnoće zavisne od parametara kvantizacije. Konkretno, H.264 kodek je definisao par vrednosti za svaki kontekst, odnosno faktor zavisan od parametra linearne kvantizacije, tj. nagib, kao i vrednost ofseta, odnosno vrednost inicijalizacije nezavisne od parametra kvantovanja. Obe vrednosti su definisane u 8 bitova. Dokument MARPE D ET AL: „Prilagodljivo binarno aritmetičko kodiranje zasnovano na kontekstu u standardu za video kompresiju H.264/AVC“, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ,, SAD, sv. 13, br.7, 1. jul 2003. (2003-07-01), strane 620-636, govori o kontekstualno zasnovanom aritmetičkom kodiranju u standardu H.264.
[0004] Postoji stalna želja da se dodatno poveća efikasnost kodiranja video kodiranja, i shodno tome, bilo bi povoljno kada bi se gore navedeno binarno entropijsko kodiranje koje se prilagođava kontekstu moglo dalje poboljšati u smislu efikasnosti, tj. u smislu kompromisa između stepena kompresije s jedne strane i složenosti implementacije s druge strane.
[0005] Shodno tome, cilj ovog pronalaska je da obezbedi takav koncept kodiranja.
[0006] Ovaj cilj se postiže kao što je prikazano u pridruženim nezavisnim patentnim zahtevima.
[0007] Osnovni nalaz ovog pronalaska proizilazi iz otkrića pronalazača da tačnost na kojoj gore identifikovani nagib i ofset u kontekstualnom adaptivnom binarnom entropijskom kodiranju ne bi trebalo da bude previše visok kako bi se izbeglo da bilo koja pripremna faza u kojoj reprezentativna mešavina video sadržaja se proverava kako bi se izveli parovi vrednosti nagiba i ofseta za individualni kontekst koji se zaustavio na optimizovanim vrednostima koje, u stvari, bliže predstavljaju mešavinu video sadržaja koji je stvarno pregledan, nego reprezentativne vrednosti statističke populacije videa. Shodno tome, pronalazači ovog pronalaska su otkrili da je poželjno smanjiti tačnost za obezbeđivanje vrednosti nagiba i ofseta za inicijalizaciju procene verovatnoće konteksta. Pronalazači su shvatili, na primer, da ovo smanjenje ne dovodi samo do smanjenja nametnutih zahteva video koderima i dekoderima u pogledu memorije za čuvanje parova nagiba i ofseta za svaki kontekst, već i do blagog povećanja efikasnosti kodiranja prilikom testiranja efikasnosti kodiranja na terenu.
[0008] Poželjna izvođenja ove prijave su opisana u nastavku sa pozivanjem na Slike među kojima
Sl. 1 prikazuje blok dijagram enkodera prema jednom izvođenju;
Sl. 2a-2c šematski prikazuju različite podele niza uzoraka kao što je podela slike na blokove;
Sl. 3 prikazuje blok dijagram dekodera prema jednom izvođenju;
Sl. 4 prikazuje detaljnije blok dijagram enkodera prema jednom izvođenju;
Sl. 5 prikazuje detaljnije blok dijagram dekodera prema jednom izvođenju;
Sl. 6 šematski ilustruje transformaciju bloka iz prostornog domena u spektralni domen, rezultujući transformaciju bloka i njegovu retransformaciju;
Sl. 7 prikazuje blok dijagram enkodera u skladu sa jednim izvođenjem;
Sl. 8 prikazuje blok dijagram dekodera pogodnog za dekodiranje bitova generisanog koderom sa Sl.8, u skladu sa jednim izvođenjem;
Sl. 9 prikazuje šematski dijagram koji ilustruje paket podataka sa multipleksiranim parcijalnim tokovima bitova u skladu sa jednim izvođenjem;
Sl. 10 prikazuje šematski dijagram koji ilustruje paket podataka sa alternativnom segmentacijom korišćenjem segmenata fiksne veličine prema drugom izvođenju; Sl. 11 prikazuje dekoder koji podržava prekidački režim u skladu sa jednim izvođenjem;
Sl. 12 prikazuje dekoder koji podržava prekidački režima prema jednom drugom izvođenju;
Sl. 13 prikazuje enkoder koji se uklapa u dekoder sa slike 11 prema jednom izvođenju; Sl. 14 prikazuje enkoder koji se uklapa u dekoder sa slike 12 prema jednom izvođenju; Sl. 15 prikazuje mapiranje pStateCtk i fullCtkState /256;
Sl. 16 prikazuje dekoder prema jednom izvođenju ovog pronalaska; i
Sl. 17 prikazuje enkoder prema jednom izvođenju ovog pronalaska.
[0009] Napominjemo da su tokom opisa slika, elementi koji se pojavljuju na nekoliko od ovih slika označeni istom pozivnom oznakom na svakoj od ovih slika i da se izbegava ponovljeni opis ovih elemenata što se tiče funkcionalnosti u kako bi se izbegla nepotrebna ponavljanja. Bez obzira na to, funkcionalnosti i opisi dati u vezi sa jednom slikom će se takođe primenjivati i na druge slike osim ako nije eksplicitno naznačeno suprotno.
[0010] U nastavku su, prvo, opisana izvođenja opšteg koncepta video kodiranja, u odnosu na Sl. 1 do 17. Sl. 1 do 6 se odnose na deo video kodeka koji radi na nivou sintakse. Slike koje slede Sl. od 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 opisni specifični aspekti i izvođenja ovog pronalaska u vidu mogućih rešenja opšteg koncepta prikazanog u odnosu na Sl 1 do 17.
[0011] Sl. 1 prikazuje primer za enkoder 10 u kome mogu biti implementirani aspekti predmetne prijave.
[0012] Koder kodira niz uzoraka 20 informacija u tok podataka. Niz uzoraka informacija može predstavljati uzorke informacija koji odgovaraju, na primer, vrednostima osvetljenosti, vrednostima boja, luma vrednostima, chroma vrednostima ili slično. Međutim, uzorci informacija mogu takođe biti vrednosti dubine u slučaju da je niz 20 uzoraka mapa dubinegenerisane, na primer, od strane time of flight senzora ili slično.
[0013] Koder 10 je koder zasnovan na blokovima. To jest, koder 10 kodira niz 20 uzoraka u tok 30 podataka u jedinicama blokova 40. Kodiranje u jedinicama blokova 40 ne znači nužno da koder 10 kodira ove blokove 40 potpuno nezavisno jedan od drugog. Umesto toga, koder 10 može da koristi rekonstrukcije prethodno kodiranih blokova kako bi ekstrapolirao ili intra predvideo preostale blokove, i može koristiti granularnost blokova za postavljanje parametara kodiranja, tj. za podešavanje načina na koji je svaki region niza uzoraka koji odgovara odgovarajućem bloku kodiran.
[0014] Dalje, koder 10 je transformacioni koder. To jest, koder 10 kodira blokove 40 korišćenjem transformacije da bi preneo uzorke informacija unutar svakog bloka 40 iz prostornog domena u spektralni domen. Može se koristiti dvodimenzionalna transformacija kao što je DCT od FFT ili slično. Poželjno je da su blokovi 40 kvadratnog ili pravougaonog oblika.
[0015] Podela niza 20 uzoraka na blokove 40 prikazane na Sl.1 služi samo u svrhu ilustracije. Sl. 1 prikazuje niz 20 uzoraka koji je podeljen na pravilan dvodimenzionalni raspored kvadratnih ili pravougaonih blokova 40 koji se naslanjaju jedan na drugi na način da se ne preklapaju. Veličina blokova 40 može biti unapred određena. To jest, koder 10 možda neće preneti informaciju o veličini bloka blokova 40 unutar toka 30 podataka na stranu za dekodiranje. Na primer, dekoder može očekivati unapred određenu veličinu bloka.
[0016] Međutim, moguće je nekoliko alternativa. Na primer, blokovi se mogu međusobno preklapati. Preklapanje se, međutim, može ograničiti do te mere da svaki blok ima deo koji se ne preklapa ni sa jednim susednim blokom, ili tako da se svaki uzorak blokova preklapa sa, maksimalno, jednim blokom od susednih blokova raspoređen tako da se nalazi pored trenutnog bloka duž unapred određenog pravca. Ovo poslednje bi značilo da levi i desni susedni blok mogu da se preklapaju sa trenutnim blokom tako da u potpunosti pokriju trenutni blok, ali ne mogu da se preklapaju jedan sa drugim, a isto važi i za susede u vertikalnom i dijagonalnom pravcu.
[0017] Kao dalja alternativa, podela niza 20 uzoraka na blokove 40 može biti prilagođena sadržaju niza 20 uzoraka pomoću enkodera 10 pri čemu se informacije o podeli prenose na podelu korišćenu na stranu dekodera preko toka 30 bitova.
[0018] Sl. 2a do 2c prikazuju različite primere za podelu niza 20 uzoraka na blokove 40. Sl.
2a prikazuje quadtree podelu niza 20 uzoraka na blokove 40 različitih veličina, sa reprezentativnim blokovima označenim na 40a, 40b, 40c i 40d sa povećanjem veličine. U skladu sa podelom na Sl. 2a, niz 20 uzoraka je prvo podeljen na pravilan dvodimenzionalni raspored blokova stabla 40d koji, zauzvrat, imaju informacije o pojedinačnim podelama povezane sa njima prema kojima se određeni blok 40d stabla može dalje podeliti u skladu sa quadtree strukturom četvorostrukog stabla ili ne može. Blok stabla levo od bloka 40d je na primer 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 transformisati niz 20 u jedinice podele na blokove.
[0019] Umesto quadtreepodele, može se koristiti i opštija multitree podela i broj podređenih čvorova po nivou hijerarhije može da se razlikuje između različitih nivoa hijerarhije.
[0020] Slika 2b prikazuje još jedan primer podele. U skladu sa Sl.2b, niz 20 uzoraka je prvo podeljen na makroblokove 40b raspoređene u pravilnom dvodimenzionalnom rasporedu na način tako da se međusobno ne preklapaju, pri čemu svaki makroblok 40b ima pridružene informacije o podeli prema kojima makroblok nije podeljen ili, ako je podeljen, podeljen je na regularan dvodimenzionalni način na podblokove jednake veličine tako da se postignu različite granularnosti podele za različite makroblokove. Rezultat je podela niza 20 uzoraka 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 vrši dvodimenzionalnu transformaciju na svakom od blokova prikazanih na Sl. 2b sa punim i isprekidanim linijama. Sl. 2c će biti razmatrana kasnije.
[0021] Sl. 3 prikazuje dekoder 50 koji može da dekodira tok 30 podataka koji generiše enkoder 10 da bi rekonstruisao rekonstruisanu verziju 60 niza 20 uzoraka. Dekoder 50 izdvaja iz toka 30 podataka blok koeficijenta transformacije za svaki od blokova 40 i rekonstruiše rekonstruisanu verziju 60 izvođenjem inverzne transformacije na svakom od blokova koeficijenta transformacije.
[0022] Enkoder 10 i dekoder 50 mogu biti konfigurisani da izvode entropijsko kodiranje/dekodiranje kako bi ubacili informacije o blokovima koeficijenta transformacije, i izdvojili ove informacije iz toka podataka, respektivno. Detalji u vezi sa ovim u skladu sa različitim izvođenjima su opisani kasnije. Treba napomenuti da tok 30 podataka ne sadrži nužno informacije o blokovima koeficijenta transformacije za sve blokove 40 niza 20 uzoraka. Umesto toga, kao podskup blokova 40 može se kodirati u tok 30 bitova na drugi način. Na primer, enkoder 10 može odlučiti da se uzdrži od umetanja bloka koeficijenta transformacije za određeni blok od blokova 40 sa ubacivanjem u tok 30 bitova alternativnih parametara kodiranja koji umesto toga omogućavaju dekoderu 50 da predvidi ili na drugi način popuni odgovarajući blok u rekonstruisanoj verziji 60. Na primer, enkoder 10 može da izvrši analizu teksture da bi locirao blokove unutar niza 20 uzoraka koje na strani dekodera može popuniti dekoder putem sinteze teksture i to naznačiti na odgovarajući način unutar toka bitova.
[0023] Kao što je objašnjeno u vezi sa slikama koje slede, blokovi koeficijenta transformacije ne predstavljaju nužno reprezentaciju spektralnog domena originalnih uzoraka informacija odgovarajućeg bloka 40 niza 20 uzoraka. Umesto toga, takav blok koeficijenta transformacije može predstavljati ostatak predviđanja odgovarajućeg bloka 40 u spektralnom domenu. Sl. 4 prikazuje izvođenje za takav enkoder. Enkoder sa Sl. 4 sadrži stepen 100 transformacije, entropijski koder 102, stepen 104 inverzne transformacije, prediktor 106 i oduzimač 108, kao i sabirač 110. Oduzimač 108, stepen 100 transformacije i entropijski koder 102 su serijski povezani. u navedenom redosledu između ulaza 112 i izlaza 114 enkodera sa Sl. 4. Stepen 104 inverzne transformacije, sabirač 110 i prediktor 106 su povezani navedenim redosledom između izlaza stepena 100 transformacije i invertovanog ulaza oduzimača 108, pri čemu je izlaz prediktora 106 takođe povezan sa drugim ulazom sabirača 110.
[0024] Koder sa Sl.4 je blok koder zasnovan na prediktivnoj transformaciji. To jest, blokovi niza 20 uzoraka koji ulaze u ulaz 112 se predviđaju iz prethodno kodiranih i rekonstruisanih delova istog niza 20 uzoraka ili prethodno kodiranih i rekonstruisanih drugih nizova uzoraka koji mogu da prethode ili slede trenutni niz 20 uzoraka u vremenu prezentacije. Predviđanje se vrši pomoću prediktora 106. Oduzimač 108 oduzima predviđanje od takvog originalnog bloka i faza 100 transformacije vrši dvodimenzionalnu transformaciju na rezidualima predviđanja. Sama dvodimenzionalna transformacija ili naknadna mera unutar faze 100 transformacije može dovesti do kvantizacije koeficijenata transformacije unutar blokova koeficijenata transformacije. Blokovi kvantizovanog koeficijenta transformacije se kodiraju bez gubitaka pomoću, na primer, entropijskog kodiranja u entropijskom koderu 102 sa rezultujućim protokom podataka koji izlazi na izlazu 114. Stepen 104 inverzne transformacije rekonstruiše kvantizovani ostatak i sabirač 110, zauzvrat, kombinuje rekonstruisani ostatak sa odgovarajućim predviđanjem da bi se dobili rekonstruisani uzorci informacija na osnovu kojih prediktor 106 može predvideti prethodno pomenute trenutno kodirane blokove predviđanja. Prediktor 106 može da koristi različite režime predviđanja kao što su režimi intra predviđanja i režimi inter predviđanja da bi predvideo blokove i parametri predviđanja se prosleđuju entropijskom koderu 102 radi umetanja u tok podataka. Za svaki inter predviđeni blok predviđanja, odgovarajući podaci o kretanju se ubacuju u tok bitova preko entropijskog enkodera 114 kako bi se omogućilo dekodirajućoj strani da ponovi predviđanje. Podaci o kretanju za blok predviđanja slike mogu uključivati deo sintakse koji uključuje element sintakse koji predstavlja razliku vektora kretanja koja diferencijalno kodira vektor kretanja za trenutni blok predviđanja u odnosu na vektor kretanja izveden predviđanjem, na primer, putem propisanog metoda iz vektora kretanja susednih već kodiranih blokova predviđanja.
[0025] To jest, u skladu sa izvođenjem na Sl. 4, blokovi koeficijenta transformacije predstavljaju spektralnu predstavu reziduala niza uzoraka pre nego stvarne uzorke informacija o tome. To jest, u skladu sa izvođenjem na Sl.4, sekvenca elemenata sintakse može da uđe u entropijski enkoder 102 da bi se entropijski kodirao u tok 114 podataka. Sekvenca elemenata sintakse može da sadrži elemente sintakse razlike vektora kretanja za blokove inter predviđenja i elemente sintakse koji se odnose na mapu značajnosti koja ukazuje na pozicije značajnih nivoa koeficijenta transformacije, kao i elemente sintakse koji definišu same nivoe značajnih koeficijenata transformacije, za blokove transformacije.
[0026] Treba napomenuti da postoji nekoliko alternativa za izvođenje sa Sl 4, pri čemu su neke od njih opisane u uvodnom delu spisa čiji je opis ovde uključen u opis Sl.4.
[0027] 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, stepen 152 inverzne transformacije, sabirač 154 i prediktor 156. Entropijski dekoder 150, stepen 152 inverzne transformacije i sabirač 154 su serijski povezani između ulaza 158 i izlaza 160 dekodera sa Sl.
5 navedenim redosledom. Drugi izlaz entropijskog dekodera 150 je povezan sa prediktorom 156 koji je, zauzvrat, povezan između izlaza sabirača 154 i njegovog drugog ulaza. Entropijski dekoder 150 izdvaja, iz toka podataka koji ulazi u dekoder sa Sl. 5 na ulazu 158, blokove koeficijenta transformacije pri čemu se inverzna transformacija primenjuje na blokove koeficijenta transformacije u fazi 152 da bi se dobio rezidualni signal. Rezidualni signal se kombinuje sa predviđanjem iz prediktora 156 na sabiraču 154 tako da se dobije rekonstruisani blok rekonstruisane verzije niza uzoraka na izlazu 160. Na osnovu rekonstruisanih verzija, prediktor 156 generiše predviđanja i na taj način rekonstruiše predviđanja izvedena od strane prediktora 106 na strani kodera. Da bi se dobila ista predviđanja kao ona koja se koriste na strani enkodera, prediktor 156 koristi parametre predviđanja koje entropijski dekoder 150 takođe dobija od toka podataka na ulazu 158.
[0028] Treba napomenuti da u gore opisanim izvođenjima, prostorna granularnost na kojoj se vrši predviđanje i transformacija reziduala, ne moraju biti jednake jedna drugoj. Ovo je prikazano na Sl. 2C. Ova slika prikazuje podelu za blokove predviđanja predviđene granularnosti označene punim linijama i rezidualne granularnosti isprekidanim linijama. Kao što se može videti, podele mogu biti izabrane pomoću kodera nezavisno jedna od druge. Da budemo precizniji, sintaksa toka podataka može dozvoliti definiciju rezidualne podele nezavisno od podele predviđanja. Alternativno, rezidualna podela može biti proširenje podele predviđanja tako da je svaki rezidualni blok jednak ili upravo predstavlja odgovarajući podskup bloka za predviđanje. Ovo je prikazano na Sl. 2a i 2b, na primer, gde je ponovo granularnost predviđanja prikazana punim linijama, a rezidualna granularnost isprekidanim linijama. To jest, na Sl. 2a-2c, svi blokovi koji imaju referentni znak povezan sa njima bili bi rezidualni blokovi za koje bi se izvršila jedna dvodimenzionalna transformacija, dok bi veći blokovi označeni punim linijama koji obuhvataju blokove 40a označene isprekidanim linijama, na primer, bili blokovi predviđanja za koje se podešavanje parametara predviđanja vrši pojedinačno.
[0029] Gore navedena izvođenja imaju zajedničko to da blok (rezidualnih ili originalnih) uzoraka treba da se transformiše na strani enkodera u blok koeficijenta transformacije koji, zauzvrat, treba da se inverzno 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 primerno 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, odnosno u blok 204 transformacionih koeficijenata 206, pri čemu je blok 204 transformacije iste veličine kao i blok 200. To jest, blok 204 transformacije ima isto toliko mnogo transformacionih koeficijenata 206 koliko blok 200 ima uzoraka, i u horizontalnom i u vertikalnom pravcu. Međutim, pošto je transformacija T spektralna transformacija, pozicije transformacionih koeficijenata 206 unutar bloka 204 transformacije ne odgovaraju prostornim pozicijama, već spektralnim komponentama sadržaja bloka 200. Konkretno, horizontalna osa transformacionog bloka 204 odgovara osi duž koje se spektralna frekvencija u horizontalnom pravcu monotono povećava dok vertikalna osa odgovara osi duž koje se prostorna frekvencija u vertikalnom pravcu monotono povećava pri čemu je koeficijent transformacije DC komponente pozicioniran u uglu - ovde primerno 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. Zanemarujući prostorni pravac, prostorna učestanost kojoj pripada određeni transformacioni koeficijent 206 generalno raste od gornjeg levog ugla do donjeg desnog ugla. Inverznom transformacijom T<-1,>blok 204 transformacije se ponovo prenosi iz spektralnog domena u prostorni domen, kako bi se ponovo dobila kopija 208 bloka 200. U slučaju da tokom transformacije nije unesen nikakav kvantizacija/gubitak, rekonstrukcija bi bila savršena.
[0030] Kao što je već pomenuto gore, može se videti sa Sl.6 da veće veličine bloka bloka 200 povećavaju spektralnu rezoluciju rezultujuće spektralne reprezentacije 204. S druge strane, šum kvantizacije teži da se širi preko celog bloka 208 i tako, 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, u tome što odnos između broja značajnih, odnosno različitih od nule (kvantizovanih) koeficijenata transformacije, odnosno nivoa, s jedne strane i broja beznačajnih koeficijenata transformacije, s druge strane može biti smanjen unutar većih blokova u poređenju sa manjim blokovima, čime se omogućava bolja efikasnost kodiranja. Drugim rečima, često, značajni nivoi koeficijenta transformacije, tj. koeficijenti transformacije koji nisu kvantovani na nulu, su slabo raspoređeni po bloku 204 transformacije. Zbog toga, u skladu sa izvođenjima opisanim detaljnije u nastavku, položaji nivoa značajnih koeficijenta transformacije se signaliziraju unutar toka podataka putem mape značaja. Odvojeno od toga, vrednosti značajnog koeficijenta transformacije, odnosno nivoi koeficijenta transformacije u slučaju da se koeficijenti transformacije kvantuju, prenose se unutar toka podataka.
[0031] Svi gore opisani koderi i dekoderi, su, prema tome, konfigurisani da deluju sa određenom sintaksom elemenata sintakse. To jest, pretpostavlja se da su prethodno pomenuti elementi sintakse kao što su nivoi koeficijenata transformacije, elementi sintakse koji se tiču mape značaja transformacionih blokova, elementi sintakse podataka o kretanju koji se odnose na blokove inter predviđanja i tako dalje, sekvencijalno raspoređeni unutar toka podataka na propisan način. Takav propisani način može biti predstavljen u obliku pseudo koda kao što je to urađeno, na primer, u standardu H.264 ili drugim video kodecima.
[0032] Drugim rečima, gornji opis se prvenstveno bavio konverzijom medijskih podataka, ovde na primer video podataka, u niz elemenata sintakse u skladu sa unapred definisanom strukturom sintakse koja propisuje određene tipove sintaksnih elemenata, njegovu semantiku i redosled među njima. Entropijski enkoder i entropijski dekoder na Sl. 4 i 5 mogu biti konfigurisani da deluju i mogu biti strukturirani, kao što je navedeno u nastavku. Isti su odgovorni za izvođenje konverzije između sekvence elemenata sintakse i toka podataka, odnosno toka simbola ili bitova.
[0033] Entropijski enkoder u skladu sa jednom izvođenjem je ilustrovan na Sl.7. Enkoder bez gubitaka konvertuje tok sintaksnih elemenata 301 u skup od dva ili više delimičnih tokova 312 bitova.
[0034] U jednom poželjnom izvođenju pronalaska, svaki sintaksni element 301 je povezan sa kategorijom skupa jedne ili više kategorija, tj. tipom elementa sintakse. Na primer, kategorije mogu specificirati tip elementa sintakse. U kontekstu hibridnog video kodiranja, posebna kategorija može biti povezana sa režimima kodiranja makroblokova, režimima kodiranja blokova, indeksima referentne slike, razlikama vektora kretanja, flegovima podele, oznakama kodiranih blokova, parametrima kvantizacije, nivoima koeficijenta transformacije, itd. U drugim oblastima primene kao što su audio, govor, tekst, dokument ili opšte kodiranje podataka, moguće su različite kategorizacije elemenata sintakse.
[0035] Uopšteno govoreći, svaki element sintakse može uzeti vrednost konačnog ili prebrojivog beskonačnog skupa vrednosti, pri čemu skup mogućih vrednosti elementa sintakse može da se razlikuje za različite kategorije elemenata sintakse. Na primer, postoje elementi binarne sintakse kao i oni sa celobrojnim vrednostima.
[0036] Za smanjenje složenosti algoritma kodiranja i dekodiranja i za omogućavanje opšteg dizajna kodiranja i dekodiranja za različite elemente sintakse i kategorije elemenata sintakse, elementi 301 sintakse se konvertuju u uređene skupove binarnih odluka i ove binarne odluke se zatim obrađuju jednostavnim algoritmima binarnog kodiranja. Prema tome, binarizator 302 bijektivno preslikava vrednost svakog elementa 301 sintakse u sekvencu (ili niz ili reč) binova 303. Sekvenca binova 303 predstavlja skup uređenih binarnih odluka. Svaki bin 303 ili binarna odluka može uzeti jednu vrednost skupa od dve vrednosti, npr. jednu od vrednosti 0 i 1. Šema binarizacije može biti različita za različite kategorije elemenata sintakse. Šema binarizacije za određenu kategoriju elementa sintakse može zavisiti od skupa mogućih vrednosti elementa sintakse i/ili drugih svojstava elementa sintakse za određenu kategoriju.
[0037] Tabela 1 ilustruje tri primera šeme binarizacije za prebrojive beskonačne skupove. Šeme binarizacije za prebrojive beskonačne skupove takođe se mogu primeniti za konačne skupove vrednosti elemenata sintakse. Posebno za velike konačne skupove vrednosti elemenata sintakse, neefikasnost (koja je rezultat neiskorišćenih sekvenci binova) može biti zanemarljiva, ali univerzalnost takvih šema binarizacije pruža prednost u smislu složenosti i zahteva za memorijom. Za male konačne skupove vrednosti elemenata sintakse, često je poželjno (u smislu efikasnosti kodiranja) prilagoditi šemu binarizacije broju mogućih vrednosti simbola.
[0038] Tabela 2 ilustruje tri primera šeme binarizacije za konačne skupove od 8 vrednosti. Šeme binarizacije za konačne skupove mogu se izvesti iz univerzalnih šema binarizacije za prebrojive beskonačne skupove modifikacijom nekih sekvenci binova na način da konačni skupovi bin sekvenci predstavljaju kod bez redundancije (i potencijalno preuređenjem bin sekvenci). Kao na primer, skraćena šema unarne binarizacije u Tabeli 2 je kreirana modifikovanjem bin sekvence za sintaksni element 7 univerzalne unarne binarizacije (videti Tabelu 1). Skraćena i preuređena Exp-Golomb binarizacija reda 0 u Tabeli 2 kreirana je modifikacijom bin sekvence za sintaksni element 7 univerzalne binarizacije Exp-Golomb reda 0 (videti Tabelu 1) i ponovnim preuređenjem bin sekvenci (skraćena bin sekvenca za simbol 7 je dodeljena simbolu 1). Za konačne skupove sintaksnih elemenata, takođe je moguće koristiti nesistematske / neuniverzalne šeme binarizacije, kao što je prikazano u poslednjoj koloni Tabele 2.
Tabela 1: Primeri binarizacije za prebrojive beskonačne skupove (ili velike konačne skupove).
Tabela 2: Primeri binarizacije za konačne skupove.
[0039] Svaki bin 303 sekvence binova kreiranih od strane binarizatora 302 se uvodi u dodeljivač 304 parametara u sekvencijalnom redosledu. Dodeljivač parametara dodeljuje skup od jednog ili više parametara svakom binu 303 i izbacuje bin sa pripadajućim skupom parametara 305. Skup parametara se određuje na potpuno isti način kod enkodera i dekodera. Skup parametara može da se sastoji od jednog ili više sledećih parametara:
Konkretno, dodeljivač 304 parametara može biti konfigurisan da dodeljuje trenutnom binu 303 kontekstni model. Na primer, dodeljivač 304 parametara može da izabere jedan od dostupnih indeksa konteksta za trenutni bin 303. Dostupni skup konteksta za trenutni bin 303 može zavisiti od tipa bina koji, zauzvrat, može biti definisan tipom/kategorijom sintaksnog elementa 301, čija je binarizacija deo trenutnog bina 303, i pozicija trenutnog bina 303 u okviru poslednje binarizacije. Izbor konteksta između dostupnog skupa konteksta može zavisiti od prethodnih binova i elemenata sintakse koji su povezani sa ovim poslednjim. Svaki od ovih konteksta ima model verovatnoće koji je povezan sa njim, tj. meru za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutni bin. Model verovatnoće posebno može biti mera za procenu verovatnoće za manje verovatnu ili verovatniju vrednost bina za trenutni bin, pri čemu se model verovatnoće dodatno definiše identifikatorom koji specificira procenu za koju od dve moguće vrednosti bina predstavlja manje verovatnu ili verovatniju bin vrednost za trenutni bin 303. U slučaju da je samo jedan kontekst dostupan za trenutni bin, izbor konteksta može biti izostavljen. Kao što će biti detaljnije istaknuto u nastavku, dodeljivač 304 parametara takođe može da izvrši prilagođenje modela verovatnoće
1
da bi prilagodio modele verovatnoće koji su povezani sa različitim kontekstima na stvarnu statistiku binova odgovarajućih binova koji pripadaju odgovarajućim kontekstima.
[0040] Kao što će takođe biti detaljnije opisano u nastavku, dodeljivač 304 parametara može da radi drugačije u zavisnosti od režima visoke efikasnosti (HE) ili režima niske složenosti (LC) koji se aktivira. U oba režima, model verovatnoće povezuje trenutni bin 303 sa bilo kojim od enkodera 310 binova, kao što će biti istaknuto u nastavku, ali način rada dodeljivača 304 parametara teži da bude manje složen u LC režimu sa, međutim, efikasnošću kodiranja koja se povećava u režimu visoke efikasnosti zbog dodeljivača 304 parametara što dovodi do toga da se povezivanje pojedinačnih binova 303 sa pojedinačnim enkoderima 310 preciznije prilagođava statistikama binova, čime se optimizuje entropija u odnosu na LC režim.
[0041] Svaki bin sa pridruženim skupom parametara 305 koji je izlaz dodeljivača 304 parametara se uvodi u selektor 306 bafera. Selektor 306 bin bafera potencijalno modifikuje vrednost ulaznog bina 305 na osnovu vrednosti ulaznog bina i pridruženih parametara 305 i dovodi na izlazi bin 307 - sa potencijalno izmenjenom vrednošću - u jedan od dva ili više bafera 308. Bafer 308 binova u koji se šalje izlazni bin 307 određuje se na osnovu vrednosti ulaznog bina 305 i/ili vrednosti pridruženih parametara 305.
[0042] U jednom poželjnom izvođenju pronalaska, selektor 306 bafera 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 307 izlaznog bina na osnovu vrednosti 305 ulaznog bina i pridružene mere za procenu verovatnoće za jednu od dve moguće vrednosti trenutnog bina. U jednom poželjnom izvođenju pronalaska, vrednost 307 izlaznog bina je postavljena da bude jednaka vrednosti 305 ulaznog bina ako je mera verovatnoće za jednu od dve moguće vrednosti bina za trenutni bin manja od (ili manja ili jednaka) određenog praga; ako je mera verovatnoće za jednu od dve moguće vrednosti bina za trenutni bin veća ili jednaka (ili veća od) određenog praga, vrednost 307 izlaznog bina se menja (tj. postavlja se na suprotnu vrednost od vrednosti ulaznog bina). U jednom daljem poželjnom izvođenju pronalaska, vrednost 307 izlaznog bina se postavlja jednaka vrednosti 305 ulaznog bina ako je mera verovatnoće za jednu od dve moguće vrednosti bin za trenutni bin veća od (ili veća ili jednaka) određenog praga; ako je mera verovatnoće za jednu od dve moguće vrednosti bina za trenutni bin manja ili jednaka (ili manja od) određenom pragu, vrednost 307 izlaznog bina se menja (tj. postavlja se na vrednost suprotnu od vrednosti ulaznog bina). U jednom poželjnom izvođenju pronalaska, vrednost praga odgovara vrednosti od 0,5 za procenjenu verovatnoću za obe moguće vrednosti bina.
[0043] U jednom daljem poželjnom izvođenju pronalaska, selektor 306 bafera binova određuje vrednost 307 izlaznog bina na osnovu vrednosti 305 ulaznog bina i pridruženog identifikatora koji specificira procenu koja od dve moguće vrednosti bina predstavlja manje verovatnu ili više verovatnu bin vrednost za trenutni bin. U jednom poželjnom izvođenju pronalaska, vrednost 307 izlaznog bina je podešena na vrednost 305 ulaznog bina ako identifikator specificira da prva od dve moguće vrednosti bina predstavlja manje verovatnu (ili verovatniju) bin vrednost za trenutni bin, a vrednost 307 izlaznog bina je modifikovana (tj. postavljena je na vrednost suprotnu od vrednosti ulaznog bina) ako identifikator specificira da druga od dve moguće bin vrednosti predstavlja manje verovatnu (ili verovatniju) bin vrednost za trenutni bin.
[0044] U jednom poželjnom izvođenju pronalaska, selektor 306 bafera određuje bafer 308 binova u koji se šalje izlazni bin 307 na osnovu pridružene mere za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutni bin. U jednom poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za procenu verovatnoće za jednu od dve moguće vrednosti bina je konačan i selektor 306 bafera sadrži tabelu koja povezuje tačno jedan bin bafer 308 sa svakom mogućom vrednošću za procenu verovatnoće za jednu od dve moguće bin vrednosti, pri čemu različite vrednosti mere za procenu verovatnoće za jednu od dve moguće bin vrednosti mogu biti povezane sa istim baferom 308 bina. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za procenu verovatnoće za jednu od dve moguće bin vrednosti je podeljen na više intervala, selektor 306 bafera bina određuje indeks intervala za trenutnu meru za procenu verovatnoće za jednu od dve moguće bin vrednosti, a selektor 306 bin bafera sadrži tabelu koja povezuje tačno jedan bin bafer 308 sa svakom mogućom vrednošću za indeks intervala, pri čemu različite vrednosti za indeks intervala mogu biti pridružene istom bin baferu 308. U jednom poželjnom izvođenju pronalaska, ulazni binovi 305 sa suprotnim merama za procenu verovatnoće za jednu od dve moguće bin vrednosti (suprotne mere su one koje predstavlja procene verovatnoće P i 1 - P) se unose u isti bin bafer 308. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutni bin sa određenim bin baferom koji se prilagođava tokom vremena, npr. da bi se obezbedilo da kreirani parcijalni tokovi bitova imaju slične brzine prenosa. Dalje u nastavku, indeks intervala će se takođe zvati pipe indeks, dok pipe indeks zajedno sa indeksom finoće i flegom koji ukazujući na verovatniju vrednost bina pokazuje stvarni model verovatnoće, odnosno procenu verovatnoće.
[0045] U jednom daljem poželjnom izvođenju pronalaska, selektor 306 bafera bina određuje bafer 308 bina u koji se šalje izlazni bin 307 na osnovu pridružene mere za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost za trenutni bin. U jednom poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost je konačan i selektor 306 bafera sadrži tabelu koja povezuje tačno jedan bafer 308 binova sa svakom mogućom vrednošću procene verovatnoće za manje verovatnu ili verovatniju bin vrednost, pri čemu različite vrednosti za meru za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost mogu biti povezane sa istim baferom 308 binova. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost je podeljen na više intervala, selektor 306 bin bafera određuje indeks intervala za trenutnu meru za procenu verovatnoće za manje verovatnu ili verovatniju vrednost bina, a selektor 306 bin bafera sadrži tabelu koja pridružuje tačno jedan bin bafer 308 sa svakom mogućom vrednošću za indeks intervala, pri čemu različite vrednosti za indeks intervala mogu biti povezane sa istim bin baferom 308. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost za trenutni bin određenom bin baferu se prilagođava tokom vremena, npr. da bi se obezbedilo da kreirani parcijalni tokovi bitova imaju slične brzine prenosa.
[0046] Svaki od dva ili više bin bafera 308 je povezan sa tačno jednim bin koderom 310 i svaki bin koder je povezan samo sa jednim bin baferom 308. Svaki bin koder 310 čita binove iz povezanog bin bafera 308 i konvertuje sekvencu bina 309 u kodnu reč 311, koja predstavlja niz bitova. Bin baferi 308 predstavljaju bafere prvi ušao-prvi izašao; binovi koje se ubacuju kasnije (u sekvencijalnom redosledu) u bin bafer 308 nisu kodirane pre binova koje se unose ranije (u sekvencijalnom redosledu) u bin bafer. Kodne reči 311 koje izlaze iz određenog bin kodera 310 se upisuju u određeni delimični tok 312 bitova. Ukupan algoritam kodiranja konvertuje elemente sintakse 301 u dva ili više delimičnih tokova 312 bitova, gde je broj delimičnih tokova bitova jednak broju bin bafera i bin enkodera. U jednom poželjnom izvođenju pronalaska, bin koder 310 pretvara promenljivi broj binova 309 u kodnu reč 311 promenljivog broja bitova. Jedna od prednosti gore i dole navedenih izvođenja pronalaska je da se kodiranje binova može vršiti paralelno (npr. za različite grupe mera verovatnoće), što smanjuje vreme obrade za nekoliko implementacija.
[0047] Još jedna prednost izvođenja pronalaska je u tome što bin kodiranje, koje obavljaju bin koderi 310, može biti posebno dizajnirano za različite skupove parametara 305. Konkretno, bin kodiranje i kodiranje mogu biti optimizovani (u smislu efikasnosti i/ili složenosti kodiranja) za različite grupe procenjenih verovatnoća. S jedne strane, ovo omogućava smanjenje složenosti kodiranja/dekodiranja, a sa druge strane, omogućava poboljšanje efikasnosti kodiranja. U jednom poželjnom izvođenju pronalaska, bin koderi 310 implementiraju različite algoritme kodiranja (tj. mapiranje bin sekvenci u kodne reči) za različite grupe mera za procenu verovatnoće za jednu od dve moguće bin vrednosti 305 za trenutni bin. U jednom daljem poželjnom izvođenju pronalaska, bin koderi 310 implementiraju različite algoritme kodiranja za različite grupe mera za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost za trenutni bin.
[0048] U jednom poželjnom izvođenju pronalaska, bin enkoderi 310 - ili jedan ili više bin enkodera - predstavljaju entropijske enkodere koji direktno mapiraju sekvence ulaznih binova 309 na kodne reči 310. Takva mapiranja se mogu efikasno implementirati i ne zahtevaju složenu mašinu za aritmetičko kodiranje. Inverzno mapiranje kodnih reči na sekvence binova (kao što je urađeno u dekoderu) treba da bude jedinstveno da bi se garantovalo savršeno dekodiranje ulazne sekvence, ali mapiranje sekvenci bin sekvence 309 na kodne reči 310 ne mora nužno da bude jedinstveno, tj. moguće je da se određena sekvenca binova može mapirati na više od jedne sekvence kodnih reči. U jednom poželjnom izvođenju pronalaska, mapiranje sekvenci ulaznih binova 309 u kodne reči 310 je bijektivno. U jednom daljem poželjnom izvođenju pronalaska, bin enkoderi 310 - ili jedan ili više bin enkodera - predstavljaju entropijske enkodere koji direktno mapiraju sekvence promenljive dužine ulaznih binova 309 na kodne reči 310 promenljive dužine. U jednom poželjnom izvođenju pronalaska, izlazne kodne reči predstavljaju kodove bez redundanse, kao što su opšti Hafmanovi kodovi ili kanonski Hafmanovi kodovi.
[0049] Dva primera za bijektivno mapiranje bin sekvenci u kodove bez redundanse ilustrovana su u Tabeli 3. U jednom daljem poželjnom izvođenju pronalaska, izlazne kodne reči predstavljaju redundantne kodove pogodne za otkrivanje greške i ispravljanje greške. U jednom daljem poželjnom izvođenju pronalaska, izlazne kodne reči predstavljaju kodove za šifrovanje pogodne za šifrovanje elemenata sintakse.
Tabela 3: Primeri za mapiranje između bin sekvenci i kodnih reči.
1
[0050] U jednom daljem poželjnom ostvarenju pronalaska, bin enkoderi 310 - ili jedan ili više bin enkodera - predstavljaju entropijske enkodere koji direktno mapiraju sekvence promenljive dužine ulaznih binova 309 na kodne reči 310 fiksne dužine. U jednom daljem poželjnom izvođenju pronalaska, bin enkoderi 310 - ili jedan ili više bin enkodera -predstavljaju entropijske enkodere koji direktno mapiraju sekvence fiksne dužine ulaznih binova 309 na kodne reči promenljive dužine 310.
[0051] Dekoder u skladu sa jednim izvođenjem pronalaska je ilustrovan na Sl. 8. Dekoder izvodi u osnovi inverzne operacije kodera, tako da se (prethodno kodirana) sekvenca elemenata 327 sintakse dekodira iz skupa od dva ili više parcijalnih tokova 324 bitova. Dekoder sadrži dva različita toka procesa: Tok za zahteve podataka, koji ponavlja tok podataka enkodera, i tok podataka, koji predstavlja inverzni tok podataka enkodera. Na ilustraciji na Sl. 8, isprekidane strelice predstavljaju tok zahteva podataka, dok pune strelice predstavljaju tok podataka. Sastavni blokovi dekodera u osnovi ponavljaju sastavne blokove enkodera, ali implementiraju inverzne operacije.
[0052] Dekodiranje elementa sintakse pokreće se zahtevom za novim dekodiranim elementom 313 sintakse koji se šalje binarizatoru 314. U jednom poželjnom izvođenu pronalaska, svaki zahtev za novim dekodiranim elementom 313 sintakse je povezan sa kategorijom skupa jedne ili više kategorija. Kategorija koja je povezana sa zahtevom za elementom sintakse je ista kao i kategorija koja je bila povezana sa odgovarajućim sintaksnim elementom tokom kodiranja.
[0053] Binarizator 314 mapira zahtev za sintaksni element 313 u jedan ili više zahteva za bin koji se šalju dodeljivaču 316 parametara. Kao konačni odgovor na zahtev za bin koji se šalje dodeljivaču 316 parametara od strane binarizator 314, binarizator 314 prima dekodiran bin 326 od selektora 318 bafera. Binarizator 314 upoređuje primljenu sekvencu dekodiranih binova 326 sa bin sekvencama određene šeme binarizacije za traženi sintaksni element i, ako se primljena sekvenca od dekodiranih binova 26 poklapa sa binarizacijom elementa sintakse, binarizator isprazni svoj bin bafer i šalje dekodirani element sintakse kao konačni odgovor na zahtev za novim dekodiranim simbolom. Ako se već primljena sekvenca dekodiranih binova ne poklapa ni sa jednom od sekvenci binova za šemu binarizacije za traženi sintaksni element, binarizator šalje drugi zahtev za bin dodeljivaču parametara sve dok se sekvenca dekodiranih binova ne poklopi sa jednom od sekvenci binova šeme binarizacije za traženi element sintakse. Za svaki zahtev za sintaksni element, dekoder koristi istu šemu binarizacije koja je korišćena za kodiranje odgovarajućeg sintaksnog elementa. Šema binarizacije može biti različita za različite kategorije elemenata sintakse. Šema binarizacije za određenu kategoriju elementa sintakse može zavisiti od skupa mogućih vrednosti elementa sintakse i/ili drugih svojstava elemenata sintakse za određenu kategoriju.
[0054] 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 bin bafera. Skup parametara koji je dodeljivač parametara dodelio traženom binu je isti kao onaj koji je dodeljen odgovarajućem binu tokom kodiranja. Skup parametara se može sastojati od jednog ili više parametara koji su navedeni u opisu enkodera na Sl.7.
[0055] U jednom poželjnom izvođenju pronalaska, dodeljivač 316 parametara pridružuje svaki zahtev za binom sa istim parametrima kao što je to uradio dodeljivač 304, tj. kontekstom i njegovom povezanom merom za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutno traženi bin, kao što je mera za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost za trenutno traženi bin i identifikator koji specificira procenu koja od dve moguće bin vrednosti predstavlja manje verovatnu ili verovatniju bin vrednost za trenutno traženi bin.
[0056] Dodeljivač 316 parametara može da odredi jednu ili više od gore navedenih mera verovatnoće (mera za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutno traženi bin, mera za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost za trenutno traženi bin, identifikator koji specificira procenu koja od dve moguće bin vrednosti predstavlja manje verovatnu ili verovatniju bin vrednost za trenutno traženi bin) na osnovu skupa jednog ili više već dekodiranih simbola. Određivanje mera verovatnoće za određeni zahtev za bin ponavlja proces u koderu za odgovarajući bin. Dekodirani simboli koji se koriste za određivanje mera verovatnoće mogu uključivati jedan ili više već dekodiranih simbola iste kategorije simbola, jedan ili više već dekodiranih simbola iste kategorije simbola koji odgovaraju skupovima podataka (kao što su blokovi ili grupe uzoraka) prostorno i/ili vremenski susednih lokacija (u odnosu na skup podataka povezan sa trenutnim zahtevom za elementom sintakse), ili jedan ili više već dekodiranih simbola različitih kategorija simbola koji odgovaraju skupovima podataka istog i/ili podatka sa prostorno i/ili vremenski susedne lokacije (u odnosu na skup podataka koji je povezan sa trenutnim zahtevom za elementom sintakse).
[0057] Svaki zahtev za bin sa pridruženim skupom 317 parametara koji izlazi iz dodeljivača 316 parametara se dovodi u selektor 318 bafera. Na osnovu pridruženog skupa 317 parametara, selektor 318 bafera šalje zahtev 319 za bin u jedan od dva ili više bafera 320 bina i prima dekodirani bin 325 iz izabranog bafera 320 bina. Dekodiran ulazni bin 325 je potencijalno modifikovan i dekodiran izlazni bin 326 - sa potencijalno izmenjenom vrednošću
1
- se šalje u binarizator 314 kao konačni odgovor na zahtev za bin sa povezanim skupom 317 parametara.
[0058] Bafer 320 binova u koji se prosleđuje zahtev za bin se bira na isti način kao bafer binova u koji je poslat izlazni bin selektora bafera na strani ekodera.
[0059] U jednom poželjnom izvođenju pronalaska, selektor 318 bafera određuje bafer 320 binova kome se šalje zahtev 319 za bin na osnovu pridružene mere za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutno traženi bin. U jednom poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za procenu verovatnoće za jednu od dve moguće bin vrednosti je konačan i selektor 318 bafera sadrži tabelu koja povezuje tačno jedan bin bafer 320 sa svakom mogućom vrednošću procene verovatnoće za jednu od dve moguće bin vrednosti, pri čemu različite vrednosti mere za procenu verovatnoće za jednu od dve moguće bin vrednosti mogu biti pridružene istom bin baferu 320. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za procenu verovatnoće za jednu od dve moguće bin vrednosti je podeljen na više intervala, birač 318 bafera bina određuje indeks intervala za trenutnu meru za procenu verovatnoće za jednu od dve moguće bin vrednosti, a selektor 318 bafera bina sadrži tabelu koja povezuje tačno jedan bin bafer 320 sa svakom mogućom vrednošću za indeks intervala, pri čemu različite vrednosti za indeks intervala mogu biti povezane sa istim bin baferom 320. U jednom poželjnom izvođenju pronalaska, zahtevi 317 za binovima sa suprotnim merama za procenu verovatnoće za jednu od dve moguće bin vrednosti (suprotne mere su one koje predstavljaju procene verovatnoće P i 1 - P) se prosleđuju u isti bin bafer 320. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutni zahtev za binom sa određenim bin baferom a se prilagođava tokom vremena.
[0060] U jednom daljem poželjnom izvođenju pronalaska, selektor 318 bin bafera određuje bin bafer 320 kome se šalje zahtev 319 za bin na osnovu pridružene mere za procenu verovatnoće za manje verovatnu ili više verovatnu bin vrednost za trenutno traženi bin. U jednom poželjnom izvođenju pronalaska, skup mogućih vrednosti za meru za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost je konačan i selektor 318 bin bafera sadrži tabelu koja povezuje tačno jedan bin bafer 320 sa svakom mogućom vrednošću procene verovatnoće za manje verovatnu ili verovatniju bin vrednost, pri čemu različite vrednosti za meru za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost mogu biti povezane sa istim bin baferom 320. U jednom daljem poželjnom izvođenju pronalaska, opseg mogućih vrednosti za meru za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost je podeljen na više intervala, selektor 318 bin bafera određuje indeks intervala za trenutnu meru za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost, a selektor 318 bin bafera sadrži tabelu koja povezuje tačno jedan bin bafer 320 sa svakom mogućom vrednošću za indeks intervala, pri čemu različite vrednosti za indeks intervala mogu biti povezane sa istim bin baferom 320. U jednom daljem poželjnom izvođenju pronalaska, pridruživanje mere za procenu verovatnoća za manje verovatnu ili verovatniju bin vrednost za trenutni zahtev za binom sa određenim bin baferom se prilagođava tokom vremena.
[0061] Nakon što primi dekodirani bin 325 iz izabranog bin bafera 320, selektor 318 bin bafera potencijalno modifikuje ulazni bin 325 i šalje izlazni bin 326 - sa potencijalno izmenjenom vrednošću - u binarizator 314. Ulazno/izlazno mapiranje selektora 318 bin bafera je inverzno u odnosu na ulazno/izlazno mapiranje selektora bin bafera na strani enkodera.
1
[0062] U jednom poželjnom izvođenju pronalaska, selektor 318 bin bafera ne modifikuje vrednost bina, tj. izlazni bin 326 ima uvek istu vrednost kao i ulazni bin 325. U jednom daljem poželjnom izvođenju pronalaska, selektor 318 bin bafera određuje vrednost izlaznog bina 326 na osnovu vrednosti ulaznog bina 325 i mere za procenu verovatnoće za jednu od dve moguće bin vrednosti za trenutno traženi bin koji je povezan sa zahtevom 317 za bin. U jednom poželjnom izvođenju pronalaska, vrednost izlaznog bina 326 je postavljena da bude jednaka vrednosti ulaznog bina 325 ako je mera verovatnoće za jednu od dve moguće bin vrednosti za trenutni zahtev za bin manja od (ili manja od ili jednaka) određenog praga; ako je mera verovatnoće za jednu od dve moguće bin vrednosti za trenutni zahtev za bin veća ili jednaka (ili veća od) određenom pragu, vrednost izlaznog bina 326 se menja (tj. postavlja se na suprotnu vrednost vrednosti ulaznog bina). U drugom poželjnom izvođenju pronalaska, vrednost izlaznog bina 326 se postavlja da bude jednak vrednosti ulaznog bina 325 ako je mera verovatnoće za jednu od dve moguće bin vrednosti za trenutni zahtev za bin veća od (ili veća od ili jednaka) određenog praga; ako je mera verovatnoće za jednu od dve moguće bin vrednosti za trenutni zahtev za bin manja ili jednaka (ili manja od) određenom pragu, vrednost izlaznog bina 326 se menja (tj. postavlja se na suprotnu vrednost vrednosti ulaznog bina). U jednom poželjnom izvođenju pronalaska, vrednost praga odgovara vrednosti od 0,5 za procenjenu verovatnoću za obe moguće bin vrednosti.
[0063] U jednom daljem poželjnom izvođenju pronalaska, selektor 318 bin bafera određuje vrednost 326 izlaznog bina na osnovu ulazne vrednosti 325 bina i identifikatora, specificirajući procenu koja od dve moguće bin vrednosti predstavlja manje verovatnu ili verovatniju bin vrednost za trenutni zahtev za bin, koji je povezan sa zahtevom 317 za bin. U jednom poželjnom izvođenju pronalaska, vrednost izlaznog bina 326 je postavljena da bude jednaka vrednosti 325 ulaznog bina ako identifikator specificira da prva od dve moguće bin vrednosti predstavlja manje verovatnu (ili verovatniju) bin vrednost za trenutni zahtev za bin, a vrednost 326 izlaznog bina je modifikovana (tj. postavljena je na suprotnu vrednost od vrednosti ulaznog bina) ako identifikator specificira da druga od dve moguće bin vrednosti predstavlja manje verovatnu (ili verovatniju) bin vrednost za trenutni zahtev za bin.
[0064] Kao što je gore opisano, selektor bin bafera šalje zahtev 319 za bin jednom od dva ili više bin bafera 320. Bin baferi 20 predstavljaju bafere prvi ušao-prvi izašao, koji se napajaju sekvencama dekodiranih binova 321 iz povezanih bin dekodera 322. Kao odgovor na zahtev 319 za bin, koji se šalje u bin bafer 320 iz selektora 318 bin bafera, bin bafer 320 uklanja iz svog sadržaja bin koji je prvo ubačen u bin bafer 320 i šalje ga selektoru 318 bin bafera. Binovi koji su ranije poslati u bin bafer 320 se ranije uklanjaju i šalju selektoru 318 bin bafera.
[0065] Svaki od dva ili više bin bafera 320 je povezan sa tačno jednim bin dekoderom322 i svaki bin dekoder je povezan samo sa jednim bin baferom 320. Svaki bin dekoder 322 čita kodne reči 323, koje predstavljaju sekvence bitova, iz zasebnog delimičnog toka 324 bitova. Bin dekoder konvertuje kodnu reč 323 u sekvencu binova 321 koja se šalje u povezani bin bafer 320. Sveukupni algoritam dekodiranja konvertuje dva ili više delimičnih tokova 324 bitova u određeni broj dekodiranih sintaksnih elemenata, gde je broj delimičnih tokova bitova jednak broju bin bafera i bin dekodera, a dekodiranje elemenata sintakse se pokreće zahtevima za nove elemente sintakse. U jednom poželjnom izvođenju pronalaska, bin dekoder 322 konvertuje kodne reči 323 promenljivog broja bitova u sekvencu promenljivog broja binova 321. Jedna prednost izvođenja iz ovog pronalaska je da se dekodiranje binova iz dva ili više delimičnih tokova bitova može izvoditi paralelno (npr. za različite grupe mera verovatnoće), što smanjuje vreme obrade za nekoliko implementacija.
1
[0066] Još jedna prednost izvođenja iz ovog pronalaska je ta što dekodiranje bina, koje obavljaju bin dekoderi 322, može biti posebno dizajnirano za različite skupove 317 parametara. Konkretno, bin kodiranje i dekodiranje mogu biti optimizovani (u smislu efikasnosti i/ili složenosti kodiranja) za različite grupe procenjenih verovatnoća. S jedne strane, ovo omogućava smanjenje složenosti kodiranja/dekodiranja u odnosu na najsavremenije algoritme entropijskog kodiranja sa sličnom efikasnošću kodiranja. S druge strane, omogućava poboljšanje efikasnosti kodiranja u odnosu na najsavremenije algoritme entropijskog kodiranja sa sličnom složenošću kodiranja/dekodiranja. U jednom poželjnom izvođenju pronalaska, bin dekoderi 322 implementiraju različite algoritme dekodiranja (tj. mapiranje bin sekvenci u kodne reči) za različite grupe mera za procenu verovatnoće za jednu od dve moguće bin vrednosti 317 za trenutni zahtev za bin. U jednom daljem poželjnom izvođenju pronalaska, bin dekoderi 322 implementiraju različite algoritme dekodiranja za različite grupe mera za procenu verovatnoće za manje verovatnu ili verovatniju bin vrednost za trenutno traženi bin.
[0067] Bin dekoderi 322 vrše inverzno mapiranje odgovarajućih bin enkodera na strani enkodera.
[0068] U jednom poželjnom izvođenju pronalaska, bin dekoderi 322 - ili jedan ili više bin dekodera - predstavljaju entropijske dekodere koji direktno mapiraju kodne reči 323 na sekvence binova 321. Takva mapiranja se mogu efikasno primeniti i ne zahtevaju složene mašine za aritmetičko kodiranje. Mapiranje kodnih reči na sekvence binova mora biti jedinstveno. U jednom poželjnom izvođenju pronalaska, mapiranje kodnih reči 323 na sekvence binova 321 je bijektivno. U jendom daljem poželjnom izvođenju pronalaska, bin dekoderi 310 - ili jedan ili više bin dekodera - predstavljaju entropijske dekodere koji direktno mapiraju kodne reči 323 promenljive dužine u sekvence promenljive dužine binova 321. U jednom poželjnom izvođenju pronalaska, ulazne kodne reči predstavljaju kodove bez redundanse kao što su opšti Hafmanovi kodovi ili kanonski Hafmanovi kodovi. Dva primera za bijektivno mapiranje kodova bez redundanse u bin sekvence su ilustrovana u Tabeli 3.
[0069] U jednom daljem poželjnom izvođenju pronalaska, bin dekoderi 322 - ili jedan ili više bin dekodera - predstavljaju entropijske dekodere koji direktno mapiraju kodne reči 323 fiksne dužine na sekvence promenljive dužine binova 321. U jednom daljem poželjnom izvođenju pronalaska, bin dekoderi 322 - ili jedan ili više bin dekodera - predstavljaju entropijske dekodere koji direktno mapiraju kodne reči 323 promenljive dužine u sekvence binova 321 fiksne dužine.
[0070] Dakle, Sl. 7 i 8 su prikazale izvođenje za enkoder za kodiranje sekvence simbola 3 i dekoder za rekonstrukciju istih. Enkoder sadrži dodeljivač 304 konfigurisan da dodeli određeni broj parametara 305 svakom simbolu sekvence simbola. Dodeljivanje je zasnovano na informacijama sadržanim u prethodnim simbolima sekvence simbola, kao što je kategorija sintaksnog elementa 1 za reprezentaciju – kao što je binarizacija – kojoj pripada trenutni simbol i za koji se, prema sintaksnoj strukturi za sintaksni element 1, trenutno očekuje, čije se očekivanje, zauzvrat, može izvesti iz istorije prethodnih sintaksnih elemenata 1 i simbola 3. Dalje, enkoder sadrži više entropijskih enkodera 10 od kojih je svaki konfigurisan da konvertuje simbole 3 prosleđene na odgovarajući entropijski enkoder u odgovarajućem toku 312 bitova, i selektor 306 konfigurisan da prosleđuje svaki simbol 3 izabranom jednom od mnoštva entropijskih enkodera 10, pri čemu izbor zavisi od broja parametara 305 dodeljenih
1
odgovarajućem simbolu 3. Dodeljivač 304 može se smatrati integrisanim u selektor 206 da bi se dobio odgovarajući selektor 502.
[0071] Dekoder za rekonstrukciju sekvence simbola sadrži više entropijskih dekodera 322, od kojih je svaki konfigurisan da konvertuje odgovarajući tok 323 bitova u simbole 321; dodeljivač 316 konfigurisan da dodeli broj parametara 317 svakom simbolu 315 sekvence simbola koji se rekonstruišu na osnovu informacija sadržanih u prethodno rekonstruisanim simbolima sekvence simbola (videti 326 i 327 na Sl. 8); i selektor 318 konfigurisan da preuzme svaki simbol niza simbola koji se rekonstruišu iz izabranog jednog od više entropijskih dekodera 322, pri čemu izbor zavisi od broja parametara definisanih za odgovarajući simbol. Dodeljivač 316 može biti konfigurisan tako da broj parametara dodeljenih svakom simbolu sadrži, ili je, meru/a za procenu verovatnoće distribucije između mogućih vrednosti simbola koje odgovarajući simbol može da preuzme. Dakle, dodeljivač 316 i selektor 318 se mogu smatrati integrisanim u jedan blok, selektor 402. Sekvenca simbola koja se rekonstruiše može biti od binarnog alfabeta, a dodeljivač 316 može biti konfigurisan tako da se procena distribucije verovatnoće sastoji od mere za procenu verovatnoće manje verovatne ili verovatnije bin vrednosti od dve moguće vrednosti binarne abecede i identifikatora koji specificira procenu koja od dve moguće bin vrednosti predstavlja manje verovatnu ili verovatniju bin vrednost. Dodejivač 316 može dalje biti konfigurisan da interno dodeljuje kontekst svakom simbolu iz sekvence simbola 315 koji se rekonstruiše na osnovu informacija sadržanih u prethodno rekonstruisanim simbolima iz sekvence simbola koji se rekonstruišu sa svakim kontekstom koji ima odgovarajuću procenu distribucije verovatnoće povezan sa tim, i da prilagodi procenu distribucije verovatnoće za svaki kontekst na stvarnu statistiku simbola zasnovanu na vrednostima simbola prethodno rekonstruisanih simbola kojima je odgovarajući kontekst dodeljen. Kontekst može uzeti u obzir prostorni odnos ili susedstvo pozicija kojima pripadaju elementi sintakse, kao što je kodiranje videa ili slike, ili čak u tabelama u slučaju finansijskih aplikacija. Zatim, mera za procenu distribucije verovatnoće za svaki simbol može da se odredi na osnovu procene distribucije verovatnoće povezane sa kontekstom koji je dodeljen odgovarajućem simbolu, kao što je kvantovanje, ili korišćenjem kao indeksa u odgovarajućoj tabeli, raspodela verovatnoće procena koja je povezana sa kontekstom dodeljenim odgovarajućim simbolom (u dole navedenim izvođenjima indeksiranim pipe indeksom zajedno sa indeksom finoće) jednom od mnoštva predstavnika procene distribucije verovatnoće (odbacujući indeks finoće) da bi se dobila mera za procenu distribucije verovatnoće (pipe indeks koji indeksira delimični tok 312 bitova). Selektor može biti konfigurisan tako da se definiše bijektivno pridruživanje između mnoštva entropijskih enkodera i mnoštva predstavnika procene raspodele verovatnoće. Selektor 18 može biti konfigurisan da promeni mapiranje kvantizacije iz opsega procena distribucije verovatnoće u mnoštvo predstavnika procene raspodele verovatnoće na unapred određen deterministički način u zavisnosti od prethodno rekonstruisanih simbola iz sekvence simbola, tokom vremena. To jest, selektor 318 može da promeni veličinu koraka kvantovanja, tj. intervale distribucije verovatnoće mapirane na pojedinačne indekse verovatnoće bijektivno povezane sa pojedinačnim entropijskim dekoderima. Mnoštvo entropijskih dekodera 322, zauzvrat, može biti konfigurisano da prilagodi svoj način pretvaranja simbola u tokove bitova koji reaguju na promenu u mapiranju kvantovanja. Na primer, svaki entropijski dekoder 322 može biti optimizovan za, odnosno može imati optimalnu stopu kompresije za određenu procenu distribucije verovatnoće unutar odgovarajućeg intervala kvantizacije procene distribucije verovatnoće, i može promeniti mapiranje sekvence kodne reči/simbola tako da prilagodi poziciju ove određene procene distribucije verovatnoće unutar odgovarajućeg intervala kvantovanja procene distribucije verovatnoće nakon promene poslednjeg tako da bi bio optimizovan. Selektor može biti konfigurisan da promeni mapiranje kvantovanja tako da
1
brzine kojima se simboli preuzimaju iz mnoštva entropijskih dekodera budu manje disperzovane. Što se tiče binarizatora 314, primećuje se da isti može biti izostavljen ako su elementi sintakse već binarni. Dalje, u zavisnosti od tipa dekodera 322, postojanje bafera 320 nije neophodno. Dalje, baferi mogu biti integrisani unutar dekodera.
Završetak sekvenci konačnih sintaksnih elemenata
[0072] U jednom poželjnom izvođenju pronalaska, kodiranje i dekodiranje se vrši za konačan skup elemenata sintakse. Često određena količina podataka kao što je statična slika, kadar ili polje video sekvence, isečak slike, deo kadra ili polje video sekvence, ili skup uzastopnih audio uzoraka itd. je kodiran. Za konačne skupove sintaksnih elemenata, generalno, delimični tokovi bitova koji se kreiraju na strani kodera moraju biti prekinuti, tj. mora se obezbediti da svi elementi sintakse mogu biti dekodirani iz prenetih ili uskladištenih delimičnih tokova bitova. Nakon što je poslednji bin umetnut u odgovarajući bin bafer 308, bin enkoder 310 mora da obezbedi da je kompletna kodna reč upisana u delimični tok 312 bitova. Ako bin enkoder 310 predstavlja entropijski enkoder koji implementira direktno mapiranje bin sekvenci na kodne reči, bin sekvenca koja je uskladištena u bin baferu nakon upisivanja poslednjeg bina u bin bafer možda ne predstavlja bin sekvencu koja je povezana sa kodnom reči (tj. mogla bi predstavljati prefiks dve ili više bin sekvenci koje su povezane sa kodnim rečima). U takvom slučaju, bilo koja od kodnih reči koja je povezana sa bin sekvencom koja sadrži bin sekvencu u bin baferukao prefiks mora biti upisana u delimični tok bitova (bin bafer mora da se isprazni). Ovo se može uraditi umetanjem binova sa određenom ili proizvoljnom vrednošću u bin baferdok se ne napiše kodna reč. U jednom poželjnom izvođenju pronalaska, bin enkoder bira jednu od kodnih reči sa minimalnom dužinom (pored osobine da pridružena bin sekvenca mora da sadrži bin sekvencu u bin baferu kao prefiks). Na strani dekodera, bin dekoder 322 može dekodirati više binova nego što je potrebno za poslednju kodnu reč u delimičnom toku bitova; ovi binovi nisu zahtevani od strane selektora318 bin bafera i odbacuju se i ignorišu. Dekodiranje konačnog skupa simbola kontroliše se zahtevima za dekodirane sintaksne elemente; ako se ne zahteva nikakav dalji element sintakse za količinu podataka, dekodiranje se prekida.
Prenos i multipleksiranje delimičnih tokova bitova
[0073] Delimični tokovi 312 bitova koje kreira koder mogu se preneti odvojeno, ili mogu biti multipleksirani u jedan tok bitova, ili se kodne reči delimičnih tokova bitova mogu preplitati u jedan tok bitova.
[0074] U jednom izvođenju pronalaska, svaki delimični tok bitova za količinu podataka je upisan u jedan paket podataka. Količina podataka može biti proizvoljan skup sintaksnih elemenata kao što je statična slika, polje ili kadar video sekvence, isečak nepokretne slike, deo polja ili kadar video sekvence ili okvir audio uzoraka itd.
[0075] U drugom poželjnom izvođenju pronalaska, dva ili više delimičnih tokova bitova za količinu podataka ili svi delimični tokovi bitova za količinu podataka su multipleksirani u jedan paket podataka. Struktura paketa podataka koji sadrži multipleksirane delimične tokove bitova ilustrovana je na Sl.9.
[0076] Paket podataka 400 se sastoji od zaglavlja i jedne particije za podatke svakog delimičnog toka bitova (za razmatranu količinu podataka). Zaglavlje 400 paketa podataka sadrži indikacije za particionisanje (ostatka) paketa podataka na segmente podataka 402 toka
2
bitova. Pored indikacija za particionisanje, zaglavlje može da sadrži dodatne informacije. U jednom poželjnom izvođenju pronalaska, indikacije za particionisanje paketa podataka su lokacije početka segmenata podataka u jedinicama bitova ili bajtova ili umnošcima bitova ili umnošcima bajtova. U jednom poželjnom izvođenju pronalaska, lokacije početka segmenata podataka su kodirane 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četka segmenata podataka su različito kodirane, tj. samo razlika između stvarnog početka segmenta podataka i predviđanja za početak segmenta podataka je kodirana. Predviđanje se može izvesti 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, indikacije prenete particije se koriste za izvođenje početka segmenata podataka. Segmenti podataka se zatim koriste kao delimični tokovi bitova i podaci sadržani u segmentima podataka se uvode u odgovarajuće bin dekodere sekvencijalnim redosledom.
[0077] Postoji nekoliko alternativa za multipleksiranje delimičnih tokova bitova u paket podataka. Jedna alternativa, koja može da smanji potrebne sporedne informacije, posebno za slučajeve u kojima su veličine delimičnih tokova bitova veoma slične, ilustrovana je na Sl.10. Sadržaj paketa podataka, tj. paketa podataka 410 bez njegovog zaglavlja 411, podeljen je na segmente 412 na unapred definisan način. Na primer, sadržaj paketa podataka može biti podeljen na segmente iste veličine. Tada je svaki segment povezan sa delimičnim protokom bitova ili sa prvim delom delimičnog toka 413 bitova. Ako je delimični tok bitova veći od pridruženog segmenta podataka, njegov ostatak 414 se stavlja u neiskorišćeni prostor na kraju drugih segmenata podataka. Ovo se može uraditi na način da se preostali deo toka bitova ubacuje obrnutim redosledom (počevši od kraja segmenta podataka), što smanjuje sporedne informacije. Povezivanje ostataka delimičnih tokova bitova sa segmentima podataka i, kada se više od jednog ostatka doda segmentu podataka, početna tačka za jedan ili više ostataka mora biti signalizirana unutar toka bitova, npr. u zaglavlju paketa podataka.
Preplitanje kodnih reči promenljive dužine
[0078] Za neke aplikacije, gore opisano multipleksiranje delimičnih tokova bitova (za količinu elemenata sintakse) u jednom paketu podataka može imati sledeće nedostatke: S jedne strane, za male pakete podataka, broj bitova za sporedne informacije koje su potrebne za signalizaciju particionisanja mogu postati značajne u odnosu na stvarne podatke u delimičnim tokovima bitova, što konačno smanjuje efikasnost kodiranja. S druge strane, multipleksiranje možda nije pogodno za aplikacije koje zahtevaju malo kašnjenje (npr. za aplikacije za video konferencije). Kod opisanog multipleksiranja enkoder ne može da započne prenos paketa podataka pre nego što se delimični tokovi bitova potpuno kreiraju, pošto lokacije početka particija nisu ranije 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 aplikacije kao što su sistemi za video konferencije, ova kašnjenja mogu da se dodaju dodatnom ukupnom kašnjenju sistema nekoliko video slika (naročito za brzine prenosa koje su bliske brzini prenosa i za enkodere/dekodere koji zahtevaju skoro vremenski interval između dve slike za kodiranje/dekodiranje slike), što je kritično za takve aplikacije. Da bi se prevazišli nedostaci za određene aplikacije, enkoder prema jednom poželjnom izvođenju pronalaska može biti konfigurisan na način da se kodne reči koje generišu dva ili više bin kodera prepliću u jedan tok bitova. Tok bitova sa isprepletenim kodnim rečima može se direktno poslati u dekoder (kada se zanemari malo kašnjenje bafera, vidi dole). Na strani dekodera, dva ili više bin dekodera čitaju kodne reči direktno iz toka bitova u redosledu dekodiranja; dekodiranje se može započeti sa prvim primljenim bitom. Pored toga, nisu potrebne nikakve sporedne informacije za signalizaciju multipleksiranja (ili preplitanja) delimičnih tokova bitova. Dalji način smanjenja složenosti dekodera može se postići kada bin dekoderi 322 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 fiksnih dužina u lokalni bafer bitova, gde je svaki bin dekoder322 povezan sa posebnim lokalnim baferom bitova. Kodne reči promenljivih dužina se zatim čitaju iz lokalnog bafera bitova. Dakle, raščlanjivanje kodnih reči promenljivih dužina može da se vrši paralelno, samo pristup sekvencama bitova fiksnih dužina mora da se vrši sinhronizovano, ali takav pristup sekvencama bitova fiksne dužine je obično veoma brz, tako da se ukupna složenost dekodiranja može smanjiti za neke arhitekture. Fiksni broj binova koji se šalju u određeni lokalni bafer bitova može biti različit za različite lokalne bafere bitova i takođe može varirati 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 određenim pristupom ne zavisi od stvarnih bitova koji se čitaju tokom određenog pristupa, što je bitna razlika u odnosu na čitanje kodnih reči promenljive dužine. Čitanje sekvenci bitova fiksne dužine pokreću se određenim događajima u baferima binova, dekoderima binova ili lokalnim baferima bitova. Kao primer, moguće je zahtevati čitanje nove sekvence bitova fiksne dužine kada broj bitova koji su prisutni u povezanom baferu bitova padne ispod unapred definisanog praga, gde se različite vrednosti praga mogu koristiti za različite bafere bitova. Kod enkodera, mora biti osigurano da se sekvence binova fiksne dužine ubacuju istim redosledom u tok bitova, u kome se čitaju iz toka bitova na strani dekodera. Takođe je moguće kombinovati ovo preplitanje sekvenci fiksne dužine sa kontrolom malog kašnjenja sličnom onima koje su gore objašnjene. U nastavku je opisano jedno poželjno izvođenje za preplitanje sekvenci bitova fiksne dužine. Za dalje detalje u vezi sa poslednjim šemama preplitanja, poziva se na WO2011/128268A1.
[0079] Nakon što su opisana izvođenja prema kojima se čak i prethodno kodiranje koristi za kompresiju video podataka, opisano je kao još jedno izvođenje za implementaciju izvođenja ovog pronalaska koje čini implementaciju posebno efikasnom u smislu dobrog kompromisa između stepena kompresije s jedne strane i lukap tabela i obima računskog opterećenja s druge strane. Konkretno, sledeća izvođenja omogućavaju korišćenje računarski manje složenih kodova promenljive dužine u cilju entropijskog kodiranja pojedinačnih tokova bitova i efektivnog pokrivanja delova procene verovatnoće. U dole opisanim izvođenjima, simboli su binarne prirode i VLC kodovi predstavljeni u nastavku efektivno pokrivaju procenu verovatnoće predstavljenu, na primer, RLPS, koja se proteže unutar [0;0,5].
[0080] Konkretno, dole navedena izvođenja opisuju moguće implementacije za pojedinačne entropijske kodere 310 i dekodere 322 na Sl. 7 do 17, respektivno. Pogodni su za kodiranje binova, odnosno binarnih simbola, kao što se javljaju u aplikacijama za kompresiju slike ili videa. Shodno tome, ova izvođenja su takođe primenljiva na kodiranje slike ili videa gde se takvi binarni simboli dele u jedan ili više tokova binova 307 koji treba da se kodiraju i tokova 324 bitova koji treba da se dekodiraju, respektivno, pri čemu se svaki takav bin tok može smatrati kao realizazija Bernulijevog procesa. Dole opisana izvođenja koriste jedan ili više dole objašnjenih različitih takozvanih kodova od promenljive do promenljive (v2v-kodova) za kodiranje bin tokova. V2v-kod se može smatrati kao dva koda bez prefiksa sa istim brojem kodnih reči. Primarni i sekundarni kod bez prefiksa. Svaka kodna reč primarnog koda bez prefiksa je povezana sa jednom kodnom rečju sekundarnog koda bez prefiksa. U skladu sa dole navedenim izvođenjima, bar neki od enkodera 310 i dekodera 322 rade na sledeći način: Za kodiranje određene sekvence binova 307, kad god se kodna reč primarnog koda bez prefiksa čita iz bafera 308, odgovarajuća kodna reč sekundarnog koda bez prefiksa se upisuje u tok 312 bitova. Ista procedura se koristi za dekodiranje takvog toka 324 bitova, ali sa zamenjenim primarnim i sekundarnim kodom bez prefiksa. To jest, da bi se dekodirao tok 324 bitova, kad god se kodna reč sekundarnog koda bez prefiksa pročita iz odgovarajućeg toka 324 bitova, odgovarajuća kodna reč primarnog koda bez prefiksa se upisuje u bafer 320.
[0081] Povoljno je da kodovi opisani u nastavku ne zahtevaju lukap tabele. Kodovi se mogu implementirati u obliku konačnih state mašina. V2v-kodovi predstavljeni ovde mogu se generisati jednostavnim pravilima konstrukcije tako da nema potrebe da se čuvaju velike tabele za kodne reči. Umesto toga, jednostavan algoritam se može koristiti za izvođenje kodiranja ili dekodiranja. U nastavku su opisana tri pravila konstrukcije gde dva od njih mogu biti parametrizovana. Ona pokrivaju različite ili čak nepovezane delove prethodno pomenutog intervala verovatnoće i, shodno tome, posebno su korisna ako se koriste zajedno, kao što su sva tri koda paralelno (svaki za različite enkodere/dekodere 11 i 22), ili dva od njih. Sa dole opisanim pravilima konstrukcije, moguće je dizajnirati skup v2v-kodova, tako da za Bernulijeve procese sa proizvoljnom verovatnoćom p, jedan od kodova radi dobro u smislu prekoračenja dužine koda.
[0082] Kao što je gore navedeno, kodiranje i dekodiranje tokova 312 i 324, respektivno, može se izvršiti ili nezavisno za svaki tok ili preplitanjem. Ovo, međutim, nije karakteristično za predstavljene klase v2v-kodova i stoga je samo kodiranje i dekodiranje određene kodne reči opisano za svako od tri pravila konstrukcije u nastavku. Međutim, naglašava se da su sva gore navedena izvođenja koja se odnose na rešenja sa preplitanjem takođe kombinovana sa sada opisanim kodovima ili en- i dekoderima 310 i 322, respektivno.
Pravilo konstrukcije 1: 'Unarni bin pipe' kodovi ili enkoderi/dekoderi 310 i 322
[0083] Unarni bin pipe kodovi (PIPE = verovatnoća intervala particionisanja entropije, eng. probability interval partitioning entropy) su specijalna verzija takozvanih 'bin pipe' kodova, tj. kodova pogodnih za kodiranje bilo kog od pojedinačnih tokova 12 i 24 bitova, od kojih svaki prenosi podatke o statistici binarnih simbola koja pripada određenom podintervalu verovatnoće gore pomenutog opsega verovatnoće [0;0,5]. Prvo je opisana konstrukcija bin pipe kodova. Bin pipe kod se može konstruisati iz bilo kog koda bez prefiksa sa najmanje tri kodne reči. Da bi formirao v2v-kod, koristi se kod bez prefiksa kao primarni i sekundarni kod, ali sa dve zamenjene kodne reči sekundarnog koda bez prefiksa. To znači da se osim dve kodne reči, binovi upisuju u tok bitova nepromenjeni. Sa ovom tehnikom, samo jedan kod bez prefiksa treba da bude uskladišten zajedno sa informacijom, koje se dve kodne reči zamenjuju i time se smanjuje trošenje memorije. Treba imati na umu da jedino ima smisla razmenjivati kodne reči različite dužine jer bi u suprotnom tok bitova imao istu dužinu kao i tok binova (zanemarujući efekte koji se mogu javiti na kraju toka bitova).
[0084] Zbog ovog pravila konstrukcije, izvanredno svojstvo bin pipe kodova je da ako se međusobno zamenjuju primarni i sekundarni kod bez prefiksa (dok je mapiranje kodnih reči zadržano), rezultujući v2v-kod je identičan originalnom v2v-kodu. Stoga su algoritam kodiranja i algoritam dekodiranja identični za bin-pipe kodove.
2
[0085] Uniarni bin kod je konstruisan od specijalnog koda bez prefiksa. Ovaj specijalni kod bez prefiksa je konstruisan na sledeći način. Prvo, generiše se kod bez prefiksa koji se sastoji od n unarnih kodnih reči počevši sa '01', '001', '0001', ... dok se ne proizvede n kodnih reči. n je parametar za unarni bin pipe kod. Iz najduže kodne reči uklanja se zadnja 1. Ovo odgovara skraćenom unarnom kodu (ali bez kodne reči '0'). Zatim se generiše n - 1 unarna kodna reč koja počinje sa '10', '110', '1110', ... dok se ne proizvede n - 1 kodna reč. Iz najduže od ovih kodnih reči uklanja se zadnja 0. Objedinjeni skup ova dva koda bez prefiksa se koristi kao ulaz za generisanje unarnog bin koda. Dve kodne reči koje se međusobno zamenjuju su ona koja se sastoji samo od 0 i ona koja se sastoji samo od 1.
[0086] Primer za n = 4:
[0087] Pravilo konstrukcije 2: 'Unarni u rice' kodovi i Unarni u rice enkoderi/dekoderi 10 i 22:
Unarni u rice kodovi koriste skraćeni unarni kod kao primarni kod. To jest, unarne kodne reči se generišu počevši sa '1', '01', '001', ... sve do2<n>+ 1 kodne reči i iz najduže kodne reči se uklanja 1 na kraju. n je parametar unarnog u rice koda. Sekundarni kod bez prefiksa je konstruisan od kodnih reči primarnog koda bez prefiksa na sledeći način. Primarnoj kodnoj reči koja se sastoji samo od 0 (množina), dodeljuje se kodna reč '1'. Sve ostale kodne reči sastoje se od konkatenacije kodne reči '0' sa n-bitnom binarnom predstavom određenog broja 0 (množina) odgovarajućih kodnih reči primarnog koda bez prefiksa.
[0088] Primer za n = 3:
[0089] Treba uočiti da je ovo identično mapiranju beskonačnog unarnog koda u rice-ov kod sa rice-ovim parametrom 2<n>.
Pravilo konstrukcije 3: 'Tri bin' kod
[0090] Tri bin kod je dat kao:
[0091] Ima osobinu da je primarni kod (sekvence simbola) fiksne dužine (uvek tri bina) i da su kodne reči sortirane po rastućim brojevima jedinica (1).
[0092] U nastavku je opisana efikasna implementacija tri bin koda. Enkoder i dekoder kod tri bin koda mogu se implementirati bez skladištenja tabela na sledeći način.
[0093] U enkoderu (bilo koji od 10), tri bina se čitaju iz toka binova (tj. 7). Ako ova tri bina sadrže tačno jednu 1, kodna reč '1' se upisuje u tok bitova iza kojeg slede dva bina koji se sastoje od binarnog prikaza pozicije 1 (počevši od desno sa 00). Ako ova tri bina sadrže tačno jednu 0, kodna reč '111' se upisuje u tok bitova praćena sa dva bina koji se sastoje od binarnog prikaza pozicije 0 (počevši sa desne strane sa 00). Preostale kodne reči '000' i '111' su mapirane u '0' i '11111', respektivno.
[0094] U dekoderu (bilo koji od 22), jedan bin ili bit se čita iz odgovarajućeg toka 24 bitova. Ako je jednak '0', kodna reč '000' se dekodira u bin tok 21. Ako je jednak '1', još dva bina se čitaju iz toka 24 bitova. Ako ova dva bita nisu jednaka '11', oni se tumače kao binarni prikaz broja i dve 0 a jedna 1 se dekodira u tok bitova tako da je pozicija od 1 određena brojem. Ako su dva bita jednaka '11', još dva bita se čitaju i tumače kao binarni prikaz broja. Ako je ovaj broj manji od 3, dva 1 i jedan 0 se dekodiraju i broj određuje poziciju 0. Ako je jednak 3, '111' se dekodira u bin tok.
[0095] U nastavku je opisana efikasna implementacija unarnih bin pipe kodova. Enkoder i dekoder za unarne bin pipe kodove mogu se efikasno implementirati korišćenjem brojača. Zbog strukture bin pipe kodova, kodiranje i dekodiranje bin pipe kodova je lako implementirati:
U enkoderu (bilo koji 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 '0' (uključujući prvu '0' kodne reči). Ako se pojavi '1', binovi za čitanje se upisuju u tok bitova nepromenjeni. U suprotnom (tj. pročitano je n 0), n -1 '1' se upisuje u tok bitova. Ako je prvi bin kodne reči jednak '1', binovi se obrađuju sve dok
2
se ne pojavi '0' ili dok se ne pročita n - 1 '1' (uključujući prvu '1' kodne reči). Ako se pojavi '0', binovi za čitanje se upisuju u tok bitova nepromenjeni. U suprotnom (tj. pročitano je n - 1 '1'), n '0' se upisuje u tok bitova.
[0096] U dekoderu (bilo koji od 322), koristi se isti algoritam kao i za enkoder, pošto je ovo isto za bin pipe kodove kao što je gore opisano.
[0097] U nastavku je opisana efikasna primena unarnih u rice kodova. Enkoder i dekoder za unarne u rice kodove mogu se efikasno implementirati korišćenjem brojača kao što će sada biti opisano.
[0098] U koderu (bilo koji od 310), binovi se čitaju iz bin toka (tj. 7) dok se ne pojavi 1 ili dok se ne pročita 2<n>'0'. Broj '0' se računa. Ako je izbrojani broj jednak 2<n>, kodna reč '1' se upisuje u tok bitova. U suprotnom, upisuje se '0', nakon čega sledi binarni prikaz prebrojanog broja, napisan sa n bitova.
[0099] U dekoderu (bilo koji od 322) se čita jedan bit. Ako je jednak '1', 2<n>'0' se dekodira u bin string. Ako je jednak '0', još n bitova se čita i tumači kao binarni prikaz broja. Ovaj broj 0 se dekodira u bin tok, praćen '1'.
[0100] Drugim rečima, ovde opisane realizacije opisuju enkoder za kodiranje sekvence simbola 303, koji sadrži dodeljivač 316 konfigurisan da dodeli određeni broj parametara 305 svakom simbolu iz sekvence simbola na osnovu informacija sadržanih u prethodnim simbolima iz sekvence simbola; mnoštvo entropijskih kodera 310 od kojih je svaki konfigurisan da konvertuje simbole 307 prosleđene odgovarajućem entropijskom koderu 310 u odgovarajući tok 312 bitova; i selektor 6 konfigurisan da prosleđuje svaki simbol 303 izabranom od mnoštva entropijskih enkodera 10, pri čemu izbor zavisi od broja parametara 305 dodeljenih odgovarajućem simbolu 303. Prema ovde navedenim izvođenjima, najmanje prvi podskup entropijskih enkodera može biti enkoder promenljive dužine konfigurisan da mapira sekvence simbola promenljive dužine unutar toka 307 simbola u kodne reči promenljive dužine koje će biti umetnute u tok 312 bitova, respektivno, sa svakim od entropijskih kodera 310 prvog podskupa koristeći 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 bez prefiksa tako da svi osim dve kodne reči primarnog koda bez prefiksa su mapirane u identične kodne reči sekundarnog koda bez prefiksa dok dve kodne reči primarnog i sekundarnog koda bez prefiksa imajurazličite dužine i mapiraju se jedna na drugu na način međusobne zamene, pri čemu entropijski enkoderi mogu da koriste različito n tako da pokriju različite delove intervala gore pomenutog intervala verovatnoće. Prvi kod bez prefiksa može biti 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 mapirane jedna na drugu na način međusobne zamene su (a,...,a)ni (b,...,b)n-1sa b ≠ a i a,b ∈ {0,1}. Međutim, alternative su izvodljive.
[0101] Drugim rečima, svaki od prvog podskupa entropijskih enkodera može biti konfigurisan da, u konvertovanju simbola koji su prosleđeni odgovarajućem entropijskom koderu u odgovarajući tok bitova, ispita prvi simbol koji je prosleđen odgovarajućem entropijskom koderu, kako bi se utvrdilo da da li je (1) prvi simbol jednak a ∈ {0,1}, u kom slučaju je odgovarajući entropijski enkoder konfigurisan da ispita sledeće simbole prosleđene odgovarajućem entropijskom enkoderu kako bi utvrdio da li (1.1) b sa b ≠ a i b ∈ {0,1} se
2
javlja u okviru sledećih n-1 simbola nakon prvog simbola, u kom slučaju je odgovarajući entropijski enkoder konfigurisan da upiše kodnu reč u odgovarajući tok bitova, što je jednako prvom simbolu praćenom sledećim simbolima koji se prosleđuju na odgovarajući entropijski enkoder, do simbola b; (1.2) nijedno b se ne javlja unutar narednih n-1 simbola nakon prvog simbola, u kom slučaju je odgovarajući entropijski enkoder konfigurisan da upiše kodnu reč u odgovarajući tok bitova, što je jednako (b,...,b)n-1; ili (2) prvi simbol je jednak b, u kom slučaju je odgovarajući entropijski enkoder konfigurisan da ispita sledeće simbole prosleđene odgovarajućem entropijskom enkoderu kako bi utvrdio da li se (2.1) a pojavljuje unutar naredna n-2 simbola nakon prvog simbola, u kom slučaju je odgovarajući entropijski enkoder konfigurisan da upiše kodnu reč u odgovarajući tok bitova, koji je jednak prvom simbolu praćenom sledećim simbolima koji se prosleđuju odgovarajućem entropijskom koderu do simbola a; ili (2.2) se ne javlja a u okviru narednih n-2 simbola posle prvog simbola, u kom slučaju je odgovarajući entropijski enkoder konfigurisan da upiše kodnu reč u odgovarajući tok bitova, što je jednako (a,...,a)n.
[0102] Dodatno ili alternativno, drugi podskup entropijskih kodera 10 može biti enkoder promenljive dužine konfigurisan da preslikava sekvence simbola promenljive dužine u kodne reči fiksne dužine, respektivno, sa svakim od entropijskih kodera drugog podskupa koristeći bijektivnu pravilo mapiranja prema kojem kodne reči primarnog skraćenog unarnog koda sa 2<n>+1 kodne reči tipa {(a), (ba), (bba), ...,(b... ba), (bb...b)} sa b ≠ a i a,b ∈ {0,1} se preslikavaju u kodne reči sekundarnog koda bez prefiksa tako da se kodna reč (bb...b) primarnog skraćenog unarnog koda preslikava u kodnu reč (c) sekundarnog koda bez prefiksa i sve ostale kodne reči {(a), (ba), (bba), ...,(b...ba)} primarnog skraćenog unarnog koda su mapirane u kodne reči koje imaju (d) sa c ≠ d i c,d ∈ {0,1} kao prefiks i n-bitna reč kao sufiks, pri čemu entropijski koderi koriste različito n. Svaki od drugog podskupa entropijskih kodera može biti konfigurisan tako da n-bitna reč predstavlja n-bitni prikaz broja b u odgovarajućoj kodnoj reči primarnog skraćenog unarnog koda. Međutim, alternative su izvodljive.
[0103] Opet, iz perspektive načina rada odgovarajućeg enkodera 10, svaki od drugog podskupa entropijskih enkodera može biti konfigurisan da, u pretvaranju simbola prosleđenih odgovarajućem entropijskom koderu u odgovarajući tok bitova, broji broj b-ova u nizu simbola koji se prosleđuju odgovarajućem entropijskom koderu, sve dok se ne pojavi a, ili dok broj niza simbola prosleđenih odgovarajućem entropijskom koderu ne dostigne 2<n>sa svih 2<n>simbola sekvence koji su b, i (1) ako je broj b-ova jednak 2<n,>upisuje c kao c ∈ {0,1} kao kodnu reč sekundarnog koda bez prefiksa u odgovarajući tok bitova, i (2) ako je broj b-ova manji od 2<n,>upisuje kodnu reč sekundarnog koda bez prefiksa u odgovarajući tok bitova, koji ima (d) sa c ≠ d i d ∈ {0,1} kao prefiksom i n-bitnu reč određenu u zavisnosti od broja b-ova kao sufiksa.
[0104] Takođe dodatno ili alternativno, unapred određen jedan od entropijskih kodera 10 može biti enkoder promenljive dužine konfigurisan da preslikava sekvence simbola fiksne dužine u kodne reči promenljive dužine, odnosno unapred određeni entropijski koder koristeći pravilo bijektivnog mapiranja prema kojem 2<3>kodne reči dužine 3 primarnog koda se mapiraju u kodne reči sekundarnog koda bez prefiksa tako da se kodna reč (aaa)3primarnog koda sa ∈ {0,1} preslikava u kodnu reč (c) sa c ∈ {0,1}, sve tri kodne reči primarnog koda koje imaju tačno jedno b sa b≠a i b ∈ {0,1} se preslikavaju na kodne reči koje imaju (d) sa c ≠ d i d ∈ {0, 1} kao prefiks i odgovarajuću prvu 2-bitnu reč iz prvog skupa 2-bitnih reči kao sufiks, sve tri kodne reči primarnog koda koje imaju tačno jedno a su mapirane u kodne reči koje imaju (d) kao prefiks i konkatenacija prve 2-bitne reči koja nije element prvog skupa i
2
drugu 2-bitne reč iz drugog skupa 2-bitnih reči, kao sufiks, i pri čemu je kodna reč (bbb)3mapirana u kodnu reč koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i drugu 2-bita reč koja nije element drugog skupa, kao sufiks. Prva 2-bitna reč kodnih reči primarnog koda koja ima tačno jedno b može biti 2-bitna reprezentacija pozicije b u odgovarajućoj kodnoj reči primarnog koda, a druga 2-bitna reč kodnih reči primarnog koda koja ima tačno jedno a može biti 2-bitna reprezentacija pozicije a u odgovarajućoj kodnoj reči primarnog koda. Međutim, alternative su izvodljive.
[0105] Opet, unapred određeni jedan od entropijskih enkodera može biti konfigurisan da, u pretvaranju simbola prosleđenih unapred određenom entropijskom koderu u odgovarajući tok bitova, ispituje simbole unapred određenog entropijskog enkodera u tripletima da li (1) se triplet sastojiod a-ova, u kom slučaju je unapred određeni entropijski enkoder konfigurisan da upiše kodnu reč (c) u odgovarajući tok bitova, (2) triplet tačno sadrži jedan b, u kom slučaju je unapred određeni entropijski enkoder konfigurisan da napiše kodnu reč koja ima (d) kao prefiks i 2-bitna reprezentacija pozicije b u tripletu kao sufiks za odgovarajući tok bitova; (3) triplet tačno sadrži jedno a, u kom slučaju je unapred određeni entropijski enkoder konfigurisan da napiše kodnu reč koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i 2-bitna reprezentacija pozicije a u tripletu kao sufiksa za odgovarajući tok bitova; ili (4) se triplet sastoji od b-ova, u kom slučaju je unapred određeni entropijski enkoder konfigurisan da napiše kodnu reč koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i prva 2-bitna reč koja nije element drugog skupa kao sufiks za odgovarajući tok bitova.
[0106] Što se tiče strane za dekodiranje, ovde opisana izvođenja otkrivaju dekoder za rekonstrukciju niza simbola 326, koji sadrži više entropijskih dekodera 322, od kojih je svaki konfigurisan da konvertuje odgovarajući tok bitova 324 u simbole 321; dodeljivač 316 konfigurisan da dodeli određeni broj parametara svakom simbolu 326 sekvence simbola koji se rekonstruišu na osnovu informacija sadržanih u prethodno rekonstruisanim simbolima sekvence simbola; i selektor 318 konfigurisan da preuzme svaki simbol 325 niza simbola koji treba da se rekonstruiše iz izabranog jednog od mnoštva entropijskih dekodera, pri čemu izbor zavisi od broja parametara definisanih za odgovarajući simbol. Prema ovde opisanim izvođenjima, najmanje prvi podskup entropijskih dekodera 322 su dekoderi promenljive dužine konfigurisani da mapiraju kodne reči promenljive dužine u sekvence simbola promenljive dužine, respektivno, sa svakim od entropijskih dekodera 22 prvog podskupa koristeći 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 kodu primarnog prefiksa tako da se sve osim dve kodne reči primarnog koda bez prefiksa mapiraju 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 mapiraju se jedna na drugu na način međusobne zamene, pri čemu entropijski enkoderi koriste različito n. Prvi kod bez prefiksa može biti 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 mapirane jedna na drugu na način međusobne zamene mogu biti (a,...,a)ni (b,...,b)n-1sa b ≠ a i a,b ∈ {0,1}. Međutim, alternative su izvodljive.
[0107] Svaki od prvog podskupa entropijskih enkodera može biti konfigurisan da, prilikom pretvaranja odgovarajućeg toka bitova u simbole, ispita prvi bit odgovarajućeg toka bitova, da bi se utvrdilo da li je (1) prvi bit jednak 0 {0,1}, u kom slučaju je odgovarajući entropijski enkoder konfigurisan da ispita sledeće bitove odgovarajućeg toka bitova da bi utvrdio da li se (1.1) b sa b ≠ a i b 0 {0,1} javlja u okviru sledećih n-1 bitova koji slede prvi bit, u kom
2
slučaju je odgovarajući entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koja je jednaka prvom bitu praćenom sledećim bitovima odgovarajućeg toka bitova, do bita b; ili (1.2) ni jedno b se ne pojavljuje u okviru sledećih n-1 bita koji slede iza prvog bita, u kom slučaju je odgovarajući entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koja je jednaka (b,...,b)n-1; ili (2) prvi bit je jednak b, u kom slučaju je odgovarajući entropijski dekoder konfigurisan da ispita sledeće bitove odgovarajućeg toka bitova kako bi utvrdio da li se (2.1) a javlja u okviru narednih n-2 bita nakon prvog bita, u kom slučaju je odgovarajući entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koja je jednaka prvom bitu praćenom sledećim bitovima odgovarajućeg toka bitova do simbola a; ili (2.2) se a ne javlja unutar naredna n-2 bita nakon prvog bita, u kom slučaju je odgovarajući entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola, koja je jednaka (a,...,a)n.
[0108] Dodatno ili alternativno, najmanje drugi podskup entropijskih dekodera 322 može biti dekoder promenljive dužine konfigurisan da mapira kodne reči fiksne dužine u sekvence simbola promenljive dužine, respektivno, sa svakim od entropijskih dekodera drugog podskupa koristeći pravilo bijektivnog preslikavanja prema kojem se kodne reči sekundarnog koda bez prefiksa preslikavaju na kodne reči primarnog skraćenog unarnog koda sa 2<n>+1 kodnih reči tipa {(a), (ba), (bba), ...,(b...ba), (bb...b)} sa b ≠ a i a,b ∈ {0,1} tako da je kodna reč (c) sekundarnog koda bez prefiksa mapirana u kodnu reč (bb...b) primarnog skraćenog unarnog koda i kodnih reči koje imaju (d) sa c ≠ d i c, d ∈ {0,1} kao prefiks i n-bitna reč kao sufiks, mapiraju se u odgovarajuću jednu od drugih kodnih reči {(a), (ba), (bba), ...,(b... ba)} primarnog skraćenog unarnog koda, pri čemu entropijski dekoderi koriste različito n. Svaki od drugog podskupa entropijskih dekodera može biti konfigurisan tako da n-bitna reč predstavlja n-bitni prikaz broja b-ova u odgovarajućoj kodnoj reči primarnog skraćenog unarnog koda. Međutim, alternative su izvodljive.
[0109] Svaki od drugog podskupa entropijskih dekodera može biti dekoder promenljive dužine konfigurisan da mapira kodne reči fiksne dužine u sekvence simbola promenljive dužine, respektivno, i konfigurisan da, u pretvaranju bitova odgovarajućeg entropijskog dekodera u simbole, ispita prvi bit odgovarajućeg toka bitova da bi utvrdio da li je (1) isto jednako c sa c ∈ {0,1}, u kom slučaju je odgovarajući entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja je jednaka (bb...b)2<n>sa b ∈ {0,1}; ili (2) isto je jednako d sa c ≠ d i c,d ∈ {0,1}, u kom slučaju je odgovarajući entropijski dekoder konfigurisan da odredi n-bitnu reč iz n daljih bitova odgovarajućeg toka bitova, nakon prvog bita, i iz toga rekonstruiše sekvencu simbola koja je tipa {(a), (ba), (bba), ..., (b... ba), (bb...b)} sa b ≠ a i b ∈ {0,1} sa brojem b u zavisnosti od n-bitne reči.
[0110] Dodatno ili alternativno, unapred određen jedan od entropijskih dekodera 322 može biti dekoder promenljive dužine konfigurisan da preslikava kodne reči promenljive dužine u sekvence simbola fiksne dužine, odnosno unapred određeni entropijski dekoder koristeći pravilo bijektivnog mapiranja prema kojem kod reči sekundarnog koda bez prefiksa se mapiraju u 2<3>kodne reči dužine 3 primarnog koda tako da se kodna reč (c) sa c ∈ {0,1} preslikava u kodnu reč (aaa)3primarnog koda sa a ∈ {0,1}, kodne reči koje imaju (d) sa c ≠ d i d ∈ {0,1} kao prefiks i odgovarajuću prvu 2-bitnu reč iz prvog skupa od tri 2-bitne reči kao sufiks su mapirane na sve tri kodne reči primarnog koda koje imaju tačno jedno b sa 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 druga 2-bitna reč iz drugog skupa od tri 2-bitne reči, kao sufiks su mapirani na sve tri kodne reči primarnog koda koje imaju tačno jedno a, i kodnu reč koja ima (d) kao prefiks i konkatenaciju prve 2-bitne reči koja nije element prvog skupa i drugu 2-bitnu reč koja nije element drugog skupa, kao sufiks je mapirana na kodnu reč (bbb)3. Prva 2-bitna
2
reč kodnih reči primarnog koda koja ima tačno jedno b može biti 2-bitna reprezentacija pozicije b u odgovarajućoj kodnoj reči primarnog koda, a druga 2-bitna reč kodnih reči primarnog koda koji ima tačno jedno a može biti 2-bitna reprezentacija pozicije a u odgovarajućoj kodnoj reči primarnog koda. Međutim, alternative su izvodljive.
[0111] Unapred određen jedan od entropijskih dekodera može biti dekoder promenljive dužine konfigurisan da mapira kodne reči promenljive dužine u sekvence simbola od po tri simbola, respektivno, i konfigurisan da, u pretvaranju bitova odgovarajućeg entropijskog dekodera u simbole, ispita prvi bit odgovarajućeg toka bitova da utvrdi da li je (1) prvi bit odgovarajućeg toka bitova jednak c sa c ∈ {0,1}, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja je jednaka (aaa)3pri a ∈ {0,1}, ili (2) prvi bit odgovarajućeg toka bitova je jednak d sa 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 naredna bita odgovarajućeg toka bitova, nakon prvog bita, i ispitajte 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 unapred određeni entropijski dekoder je konfigurisan da rekonstruiše sekvencu simbola koja ima tačno jedo b sa b≠a i b ∈ {0,1}, sa pozicijom b u odgovarajućoj sekvenci simbola u zavisnosti od prve 2-bitne reči, ili (2.2) prva 2-bitna reč je element prvog skupa, u kom slučaju je unapred određeni entropijski dekoder konfigurisan da odredi drugu 2-bitnu reč iz 2 sledeća bita odgovarajućeg toka bitova, prateći dva bita iz kojih je prva 2-bitna reč određena i ispituje 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 se rekonstruiše sekvenca simbola koja ima tačno jedno a, sa pozicijom a u odgovarajućoj sekvenci simbola u zavisnosti od druge 2-bitne reči, ili (3.2) 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, sa pozicijom a u odgovarajućoj sekvenci simbola u zavisnosti od druge 2-bitne reči, ili (3.2) druga 2-bitna reč je element drugog skupa od tri 2-bitne reči, u kome slučaju je unapred određeni entropijski dekoder konfigurisan da rekonstruiše sekvencu simbola koja je jednaka (bbb)3.
[0112] Sada, nakon što je opisan opšti koncept šeme video kodiranja, opisana su izvođenja ovog pronalaska u odnosu na gornja izvođenja. Drugim rečima, dole navedena izvođenja mogu se primeniti korišćenjem gornjih šema, i obrnuto, gornje šeme kodiranja mogu se primeniti upotrebom i korišćenjem dole navedenih izvođenja.
[0113] U gornjim izvođenjima opisanim u odnosu na Sl. 7 do 9, entropijski enkoder i dekoderi sa Sl. 1 do 6, implementirani su u skladu sa PIPE konceptom. Jedno specijalno izvođenje je koristilo enkodere/dekodere 310 i 322 aritmetičke jednostruke verovatnoće stanja. Kao što će biti opisano u nastavku, u skladu sa alternativnom varijantom, entiteti 306-310 i odgovarajući entiteti 318 do 322 mogu biti zamenjeni zajedničkom mašinom za entropijsko kodiranje. Na primer, mašina za aritmetičko kodiranje može da upravlja samo jednim zajedničkim stanjem R i L i kodira sve simbole u jedan zajednički tok bitova, čime se odriče korisnih aspekata sadašnjeg PIPE koncepta u vezi sa paralelnom obradom, ali izbegavajući neophodnost preplitanja delimičnih tokova bitova. kao što je dalje objašnjeno u nastavku. Pri tome, broj stanja verovatnoće prema kojima se procenjuju verovatnoće konteksta ažuriranjem (pretraga u tabeli), može biti veći od broja stanja verovatnoće prema kojima se vrši podela intervala verovatnoće. To jest, analogno kvantovanju vrednosti širine intervala verovatnoće pre indeksiranja u tabelu Rtab, takođe se može kvantovati indeks stanja verovatnoće. Gornji opis za moguću implementaciju za pojedinačne enkodere/dekodere 310 i 322 može se, stoga, proširiti kao primer implementacije entropije enkodera/dekodera 318322/306-310 kao mašina za kodiranje/dekodiranje binarnom aritmetikom sa prilagodljivim kontekstom:
[0114] Da budemo precizniji, u skladu sa jednim izvođenjem, entropijski enkoder povezan na izlaz dodeljivača parametara (koji ovde deluje kao dodeljivač konteksta) može da radi na sledeći način:
0. Dodeljivač 304 prosleđuje bin vrednosti zajedno sa parametrom verovatnoće. Verovatnoća je pState_current [bin].
1. Dakle, mašina za entropijsko kodiranje prima: 1) valLPS, 2) bin i 3) procenu raspodele verovatnoće pState_current [bin]. pState_current [bin] može imati više stanja od broja prepoznatljivih indeksa stanja verovatnoće za Rtab. Ako je tako, pState_current [bin] se može kvantovati kao što je, na primer, zanemarivanjem m LSB-ova sa m koje je veće ili jednako 1 i poželjno 2 ili 3 kako bi se dobilo p_state, tj. indeks koji se zatim koristi za pristup tabela Rtab. Kvantizacija se, međutim, može izostaviti, tj p_state može biti pState_current [bin].
2. Zatim se vrši kvantizacija R (Kao što je gore pomenuto: ili jedno R (i odgovarajuće L sa jednim zajedničkim protokom bitova) se koristi/upravlja za sve prepoznatljive vrednosti p_state, ili jedno R (i odgovarajuće L sa pripadajućim delimičnim protokom bitova) po R/L paru) po prepoznatljivoj vrednosti p_state gde bi poslednji slučaj odgovarao da ima jedan bin koder 310 po takvoj vrednosti)
q_index = Ktab [R>>k] (ili neki drugi oblik kvantizacije)
3. Zatim se vrši određivanje RLPSi R:
RLPS= Rtab[p_state][q_index]; Rtab je u njemu uskladištio 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) onda
L L R
R RLPS
5. Renormalizacija L i R, pisanje bitova,
[0115] Analogno tome, entropijski dekoder povezan sa izlazom dodeljivača parametara (koji ovde deluje kao dodeljivač konteksta) može da radi na sledeći način:
0. Dodeljivač 304 prosleđuje bin vrednost zajedno sa parametrom verovatnoće. Verovatnoća je pState_current [bin].
1. Dakle, mašina za entropijsko dekodiranje prima zahtev za bin zajedno sa: 1) valLPS i 2) procenom raspodele verovatnoće pState_current [bin]. pState_current [bin] može imati više stanja od broja prepoznatljivih indeksa stanja verovatnoće za Rtab. Ako je tako, pState_current [bin] se može kvantovati kao što je, na primer, zanemarivanjem m LSB-ova pri m koje je veće ili jednako 1 i poželjno 2 ili 3 kako bi se dobilo p_state, tj. indeks
1
koji se zatim koristi za pristup tabela Rtab. Kvantovanje se, međutim, može izostaviti, tj p_state može biti pState_current [bin].
2. Zatim se vrši kvantizacija R (Kao što je gore pomenuto: ili jedan R (i odgovarajući V sa jednim zajedničkim protokom bitova) se koristi/upravlja za sve prepoznatljive vrednosti p_state, ili jedan R (i odgovarajući V sa pripadajućim delimičnim protokom bitova) po R/L par) po prepoznatljivoj vrednosti p_state gde bi poslednji slučaj odgovarao da ima jedan bin koder 310 po takvoj vrednosti)
q_index = Qtab [R>>q] (ili neki drugi oblik kvantizacije)
3. Zatim se vrši određivanje RLPSi R:
RLPS= Rtab[p_state][q_index]; Rtab je ovde uskladištio 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 položaja parcijalnog intervala:
ako (V<3>R) onda
bin 1 - valMPS (bin se dekodira kao LPS; birač bin bafera 18 će dobiti stvarnu bin vrednost koristeći ove informacije o binu i valMPS) V¬V-R
R RLPS
drugo
bin valMPS (bin se dekodira kao MPS; stvarna vrednost bin se dobija korišćenjem ove informacije o binu i valMPS)
5. Renormalizacija R, očitavanje jednog bita i ažuriranje V,
[0116] Kao što je gore opisano, dodeljivač 4 dodeljuje pState_current [bin] svakom binu. Povezivanje se može izvršiti na osnovu odabira konteksta. To jest, dodeljivač 4 može da izabere kontekst koristeći indeks konteksta ctxIdx koji, zauzvrat, ima odgovarajući pState_current povezan sa njim. Ažuriranje verovatnoće se može izvršiti svaki put, verovatnoća pState_current [bin] je primenjena na trenutni bin. Ažuriranje stanja verovatnoće pState_current [bin] se vrši u zavisnosti od vrednosti kodiranog bita:
if (bit = 1 - valMPS) onda
pState_current ← Next_State_LPS [pState_current]
if (pState_current = 0) onda valMPS ← 1 ― valMPS
drugo
pState_current ← Next_State_MPS [pState_current]
[0117] Ako je obezbeđeno više od jednog konteksta, prilagođavanje se vrši kontekstualno, tj pState_current[ctxIdx] se koristi za kodiranje, a zatim se ažurira korišćenjem trenutne bin vrednosti (kodirano ili dekodirano, respektivno).
[0118] Kao što će biti detaljnije istaknuto u nastavku, u skladu sa izvođenjima koja su sada opisana, enkoder i dekoder mogu opciono biti implementirani da rade u različitim režimima, odnosno režimu niske složenosti (LC) i režimu visoke efikasnosti (HE). Ovo je ilustrovano prvenstveno u vezi sa PIPE kodiranjem u nastavku (onda se pominju LC i HE PIPE režimi), ali opis detalja skalabilne složenosti se lako prenosi na druge implementacije mašina za
2
entropijsko kodiranje/dekodiranje, kao što je izvođenje korišćenjem jednog zajedničkog aritmetičkog enkodera/dekodera prilagodljivog konteksta.
[0119] U skladu sa izvođenjima navedenim u nastavku, oba načina entropijskog kodiranja mogu da dele
· istu sintaksu i semantiku (za sekvencu elementa sintakse 301 i 327, respektivno)
· iste šeme binarizacije za sve elemente sintakse (kao što je trenutno navedeno za CABAC) (tj binarizatori mogu da rade bez obzira na aktivirani režim)
· korišćenje istih PIPE kodova (tj. bin enkoderi/dekoderi mogu raditi bez obzira na aktivirani režim)
· korišćenje 8-bitnih vrednosti inicijalizacije modela verovatnoće (umesto 16-bitnih vrednosti inicijalizacije kako je trenutno navedeno za CABAC)
[0120] Uopšteno govoreći, LC-PIPE se razlikuje od HE-PIPE po složenosti obrade, kao što je složenost biranja PIPE putanje 312 za svaki bin.
[0121] Na primer, LC režim može da funkcioniše pod sledećim ograničenjima: Za svaki bin (binIdx), može postojati tačno jedan model verovatnoće, tj. jedan ctxIdx. To jest, u LC PIPE ne može da se obezbedi izbor/prilagođavanje konteksta. Specifični elementi sintakse kao što su oni koji se koriste za rezidualno kodiranje mogu, međutim, da budu kodirani koristeći kontekste, kao što je dalje navedeno u nastavku. Štaviše, svi modeli verovatnoće mogu biti neprilagodljivi, tj. svi modeli mogu biti inicijalizovani na početku svakog isečka sa odgovarajućim verovatnoćama modela (u zavisnosti od izbora tipa isečka i QP isečka) i mogu biti zadržani fiksni tokom obrade isečka. Na primer, može biti podržano samo 8 različitih modela verovatnoća koji odgovaraju 8 različitih PIPE kodova 310/322, i za kontekstualno modeliranje i za kodiranje. Specifični elementi sintakse za rezidualno kodiranje, tj. significance_coeff_flag i coeff_abs_level_greaterX (sa X=1,2), čija je semantika detaljnije opisana u nastavku, mogu se dodeliti modelima verovatnoće tako da (najmanje) grupe, npr. 4 elementa sintakse su kodirana/dekodirana sa istom modelom verovatnoće. U poređenju sa CAVLC, LC-PIPE režim postiže otprilike iste R-D performanse i isti protok.
[0122] HE-PIPE može biti konfigurisan da bude konceptualno sličan CABAC-u H.264 sa sledećim razlikama: Binarno aritmetičko kodiranje (BAC) je zamenjeno PIPE kodiranjem (isto kao u slučaju LC-PIPE). Svaki model verovatnoće, tj. svaki ctxIdx, može biti predstavljen sa pipeIdk i refineIdk, gde pipeIdk sa vrednostima u opsegu od 0...7 predstavlja verovatnoću modela za 8 različitih PIPE kodova. Ova promena utiče samo na unutrašnju reprezentaciju stanja, a ne na ponašanje same mašine stanja (tj. procenu verovatnoće). Kao što će biti detaljnije objašnjeno u nastavku, inicijalizacija modela verovatnoće može koristiti vrednosti inicijalizacije od 8 bita kao što je gore navedeno. Skeniranje unatrag elemenata sintakse coeff_abs_level_greaterX (sa X = 1, 2), coeff_abs_level_minus3 i coeff_sign_flag (čija semantika će biti jasna iz diskusije u nastavku) može se izvršiti duž iste putanje skeniranja kao i skeniranje unapred (koristi se npr. kodiranje karte značaja). Izvođenje konteksta za kodiranje coeff_abs_level_greaterX (sa X = 1, 2) takođe može biti pojednostavljeno. U poređenju sa CABAC-om, predloženi HE-PIPE postiže približno iste R-D performanse uz bolju propusnost.
[0123] Lako je videti da se upravo pomenuti režimi lako generišu prikazivanjem, na primer, prethodno pomenute mašine za kontekstno-prilagodljivo binarno aritmetičko kodiranje/dekodiranje takve da ista radi u različitim režimima.
[0124] Prema tome, u skladu sa jednim izvođenjem prema prvom aspektu predmetnog pronalaska, dekoder za dekodiranje toka podataka može biti konstruisan kao što je prikazano na sSl.11. Dekoder je za dekodiranje toka podataka 401, kao što je isprepletan tok 340 bitova, u koji se kodiraju medijski podaci, kao što su video podaci. Dekoder sadrži prekidač 400 režima konfigurisan da aktivira režim niske složenosti 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 sintaksnielement, koji ima binarnu vrednost 1 u slučaju da je režim niske složenosti onaj koji treba da se aktivira, i ima binarnu vrednost 0 u slučaju da je režim visoke efikasnosti onaj koji treba da se aktivira. Očigledno, veza između binarne vrednosti i režima kodiranja mogla bi se promeniti, a mogao bi se koristiti i nebinarni sintaksni element koji ima više od dve moguće vrednosti. Pošto stvarni izbor između oba režima još uvek nije jasan pre prijema odgovarajućeg sintaksnog elementa, ovaj element sintakse može biti sadržan u nekom vodećem zaglavlju toka podataka 401 kodiranom, na primer, sa fiksnom procenom verovatnoće ili modelom verovatnoće ili je upisan u tok 401 podataka kakav jeste, tj. koristeći režim zaobilaženja.
[0125] Dalje, dekoder sa Sl. 11 sadrži više entropijskih dekodera 322 od kojih je svaki konfigurisan da konvertuje kodne reči u tok 401 podataka u delimične sekvence 321 simbola. Kao što je gore opisano, deinterleaver 404 može biti povezan između ulaza entropijskih dekodera 322 s jedne strane i ulaza dekodera sa Sl.11 gde se primenjuje tok 401 podataka, s druge strane. Dalje, kao što je već gore opisano, svaki od entropijskih dekodera 322 može biti povezan sa odgovarajućim intervalom verovatnoće, pri čemu 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 entropije dekoderi 322 koji se bave MPS i LPS pre nego apsolutnim vrednostima simbola. Detalji u vezi sa ovim pitanjem su opisani iznad. Kasnije se pretpostavlja da je broj dekodera 322 jednak 8 sa PIPE indeksom koji je dodeljen svakom dekoderu, ali bilo koji drugi broj je takođe izvodljiv. Dalje, jedan od ovih kodera, u nastavku, ovo je primerno onaj koji ima pipe_id 0, optimizovan je za binove koji imaju jednako verovatnu statistiku, tj. njihova vrednost bina pretpostavlja 1 i 0 podjednako verovatno. Ovo, dekoder može samo da prosledi binove. Odgovarajući enkoder 310 radi isto. Čak i svaka manipulacija binom u zavisnosti od vrednosti najverovatnije vrednosti bina, valMPS, od strane selektora 402 i 502, respektivno, može biti izostavljena. Drugim rečima, entropija odgovarajućeg delimičnog toka je već optimalna.
[0126] Dalje, dekoder sa Sl. 11 sadrži selektor 402 konfigurisan da preuzme svaki simbol sekvence 326 simbola iz izabranog jednog od mnoštva entropijskih dekodera 322. Kao što je gore pomenuto, selektor 402 može da se podeli na dodeljivač parametara 316 i selektor 318. De-simbolizator 314 je konfigurisan da de-simbolizuje sekvencu 326 simbola da bi dobio sekvencu 327 elemenata sintakse. Rekonstruktor 404 je konfigurisan da rekonstruiše medijske podatke 405 na osnovu redosleda elemenata sintakse 327. Selektor 402 je konfigurisan da izvrši selekciju u zavisnosti od aktiviranog jednog od režima niske složenosti i režima visoke efikasnosti kao što je naznačeno strelicom 406.
[0127] Kao što je već pomenuto gore, rekonstruktor 404 može biti deo prediktivnog video dekodera zasnovanog na blokovima koji radi na fiksnoj sintaksi i semantici elemenata sintakse, tj. fiksiran u odnosu na izbor režima pomoću prekidača režima 400. To jest, konstrukcija rekonstruktora 404 ne pati zbog mogućnosti menjanja režima. Da budemo precizniji, rekonstruktor 404 ne povećava troškove implementacije zbog mogućnosti prebacivanja režima koji nudi prekidač režima 400 i barem funkcionalnost u pogledu
4
preostalih podataka i podaci predviđanja ostaju isti bez obzira na režim koji je izabrao prekidač 400. Isto, međutim, važi i za entropijske dekodere 322. Svi ovi dekoderi 322 se ponovo koriste u oba režima i, shodno tome, nema dodatnih troškova implementacije iako je dekoder sa Sl. 11 kompatibilan sa oba režima, režima niske-složenosti i režima visoke efikasnosti.
[0128] Kao sporedni aspekt, treba napomenuti da dekoder sa slike 11 nije u stanju da radi samo na samostalnim tokovima podataka bilo u jednom ili drugom režimu. Umesto toga, dekoder sa Sl. 11 kao i tok podataka 401 mogu biti konfigurisani tako da bi prebacivanje između oba režima bilo moguće čak i tokom jednog dela medijskih podataka, kao što je tokom video ili nekog audio dela, da bi se, na primer, kontrolišu složenost kodiranja na strani dekodiranja u zavisnosti od spoljnih uslova ili uslova okoline, kao što je status baterije ili slično, korišćenjem kanala povratne sprege od dekodera do enkodera kako bi se u skladu sa tim kontrolisao izbor režima pomoću zaključane petlje.
[0129] Prema tome, dekoder sa Sl. 11 radi slično u oba slučaja, u slučaju da je izabran LC režim ili je izabran HE režim. Rekonstruktor 404 izvodi rekonstrukciju koristeći elemente sintakse i zahteva trenutni sintaksni element unapred određenog tipa elementa sintakse obradom ili pridržavanjem nekog propisa sintaksne strukture. De-simbolizator 314 zahteva izvestan broj binova kako bi dao validnu binarizaciju za element sintakse koji zahteva rekonstruktor 404. Očigledno, u slučaju binarnog alfabeta, binarizacija koju vrši desimbolizator 314 svodi se na samo prenošenje odgovarajućeg bina/simbola 326 u rekonstruktor 404 kao element binarne sintakse koji se trenutno zahteva.
[0130] Selektor 402, međutim, deluje nezavisno na režim koji je izabran prekidačem režima 400. Način rada selektora 402 teži da bude složeniji u slučaju režima visoke efikasnosti, i manje složen u slučaju režima niske složenosti. Štaviše, sledeća diskusija će pokazati da način rada selektora 402 u manje složenom režimu takođe ima tendenciju da smanji brzinu kojom selektor 402 menja selekciju među entropijskim dekoderima 322 u preuzimanju uzastopnih simbola iz entropijskih dekodera 322. Drugim rečima, u režimu niske složenosti, postoji povećana verovatnoća da se odmah uzastopni simboli preuzmu iz istog entropijskog dekodera među mnoštvom entropijskih dekodera 322. Ovo, zauzvrat, omogućava brže preuzimanje simbola iz entropijskog dekodera 322. U režimu visoke efikasnosti, zauzvrat, režim rada selektora 402 teži da dovede do izbora između entropijskih dekodera 322 gde se interval verovatnoće povezan sa odgovarajućim izabranim entropijskim dekoderom 322 bliže uklapa u stvarna statistika simbola simbola koju trenutno preuzima selektor 402, čime se postiže bolji odnos kompresije na strani kodiranja kada se generiše odgovarajući tok podataka u skladu sa režimom visoke efikasnosti.
[0131] Na primer, različito ponašanje selektora 402 u oba režima može se realizovati na sledeći način. Na primer, selektor 402 može biti konfigurisan da izvrši, za unapred određeni simbol, izbor između mnoštva entropijskih dekodera 322 u zavisnosti od prethodno preuzetih simbola sekvence 326 simbola u slučaju da je režim visoke efikasnosti aktiviran i nezavisno od sve prethodno preuzete simbole iz sekvence simbola u slučaju da se aktivira režim niske složenosti. Zavisnost od prethodno preuzetih simbola sekvence 326 simbola može biti rezultat adaptivnosti konteksta i/ili prilagodljivosti verovatnoće. Obe prilagodljivosti mogu biti isključene tokom režima niske složenosti u biraču 402.
[0132] U skladu sa jednim daljim izvođenjem, tok 401 podataka može biti strukturiran u uzastopne delove kao što su preseci, kadrovi, grupa slika, sekvence kadrova ili slično, a svaki simbol izsekvence simbola može biti povezan sa odgovarajućim mnoštvom tipova simbola. U ovom slučaju, selektor 402 može biti konfigurisan da varira, za simbole unapred određenog tipa simbola unutar trenutnog dela, izbor u zavisnosti od prethodno preuzetih simbola iz niza simbola unapred određenog tipa simbola unutar trenutnog dela u slučaju aktivira se režim visoke efikasnosti i ostavite konstantnu selekciju unutar trenutnog dela u slučaju da se aktivira režim niske složenosti. To jest, selektoru 402 može biti dozvoljeno da promeni izbor između entropijskih dekodera 322 za unapred određeni tip simbola, ali ove promene su ograničene da se dešavaju između prelaza između uzastopnih delova. Ovom merom, procene stvarne statistike simbola su ograničene na vremenske instance koje se retko pojavljuju, dok je složenost kodiranja smanjena u većini vremena.
[0133] Dalje, svaki simbol sekvence 326 simbola može biti povezan sa odgovarajućim od mnoštva tipova simbola, a selektor 402 može biti konfigurisan da, za unapred određeni simbol unapred određenog tipa simbola, izabere jedan od mnoštvo konteksta u zavisnosti od prethodno preuzetih simbola sekvence 326 simbola i vrši selekciju između entropijskih dekodera 322 u zavisnosti od modela verovatnoće povezanog sa izabranim kontekstom zajedno sa ažuriranjem modela verovatnoće povezanog sa izabranim kontekstom u zavisnosti od unapred određenog simbola u slučaju aktiviranja režima visoke efikasnosti, i izvrši izbor jednog iz mnoštva konteksta u zavisnosti od prethodno preuzetih simbola niza 326 simbola i izvrši izbor između entropijskih dekodera 322 u zavisnosti od modela verovatnoće koji je povezan sa izabranim kontekstom uz ostavljanje modela verovatnoće povezanog sa izabranim kontekstom konstantnim u slučaju da je aktiviran režim niske složenosti. To jest, selektor 402 može da koristi prilagođavanje konteksta u odnosu na određeni tip elementa sintakse u oba režima, dok potiskuje prilagođavanje verovatnoće u slučaju LC režima.
[0134] Alternativno, umesto da potpuno suzbije prilagođavanje verovatnoće, selektor 402 može samo da smanji stopu ažuriranja prilagođavanja verovatnoće LC režima u odnosu na HE režim.
[0135] Dalje, mogući aspekti specifični za LC-pipe, tj. aspekti LC režima, mogu se drugim rečima opisati na sledeći način. Konkretno, neadaptivni modeli verovatnoće mogu se koristiti u LC režimu. Neadaptivni model verovatnoće može imati ili čvrsto kodiranu, tj. ukupnu konstantnu verovatnoću ili se njegova verovatnoća održava fiksnom tokom obrade samo isečka i stoga se može podesiti u zavisnosti od tipa isečka i QP, tj. parametra kvantizacije koji je, na primer, signaliziran unutar toka 401 podataka za svaki isečak. Pod pretpostavkom da uzastopni binovi dodeljeni istom kontekstu prate model fiksne verovatnoće, moguće je dekodirati nekoliko tih binova u jednom koraku pošto su kodirani korišćenjem istog pipe koda, tj. korišćenjem istog entropijskog dekodera i ažuriranja verovatnoće nakon što je svaki dekodirani bin izostavljen. Izostavljanje ažuriranja verovatnoće štedi operacije tokom procesa kodiranja i dekodiranja i na taj način takođe dovodi do smanjenja složenosti i značajnog pojednostavljenja dizajna hardvera.
[0136] Neprilagodljivo ograničenje može biti olakšano za sve ili neke odabrane modele verovatnoće na takav način da su ažuriranja verovatnoće dozvoljena nakon što je određeni broj binova kodiran/dekodovan korišćenjem ovog modela. Odgovarajući interval ažuriranja omogućava prilagođavanje verovatnoće uz mogućnost dekodiranja nekoliko binova odjednom.
[0137] U nastavku je predstavljen detaljniji opis mogućih zajedničkih i skalabilnih aspekata LC-pipe i HE-pipe. Konkretno, u nastavku su opisani aspekti koji se mogu koristiti za LCpipe režim i HE-pipe režim na isti način ili na način skalabilan po složenosti. Kompleksno skalabilan znači da je LC-slučaj izveden iz HE-slučaja uklanjanjem određenih delova ili njihovom zamenom nečim manje složenim. Međutim, pre nego što nastavimo sa tim, treba napomenuti da se izvođenje sa Sl. 11 lako prenosi na gore pomenutu binarnu aritmetičku adaptivnu kontekstualizaciju en /dekodiranja: selektor 402 i entropijski dekoderi 322 bi se kondenzovali u dekoder sa konteksno prilagodljivom binarnom aritmetikom koji bi direktno primio tok podataka 401 i izabrao kontekst za bin koji se trenutno izvodi iz toka podataka. Ovo posebno važi za prilagodljivost na kontekst i/ili prilagodljivost verovatnoće. Obe funkcionalnosti/prilagodljivosti mogu biti isključene ili dizajnirane opuštenije tokom režima niske složenosti.
[0138] Na primer, u implementaciji izvođenja sa Sl.11, faza pipe entropijskog kodiranja koja uključuje entropijske dekodere 322 može da koristi osam sistematskih kodova od promenljive do promenljive, tj. svaki entropijski dekoder 322 može biti tipa v2v koji je gore opisan. Koncept PIPE kodiranja koji koristi sistematske v2v-kodove je pojednostavljen ograničavanjem broja v2v-kodova. U slučaju binarnog aritmetičkog dekodera koji se prilagođava kontekstu, isti bi mogao da upravlja istim stanjima verovatnoće za različite kontekste i koristi istu - ili njegovu kvantoizovanu verziju - za podelu verovatnoće. Preslikavanje stanja CABAC ili modela verovatnoće, tj. stanja koja se koriste za ažuriranje verovatnoće, u PIPE id-ove ili indekse verovatnoće za traženje u Rtab -u može biti kao što je prikazano u tabeli A.
Tabela A: Mapiranje CABAC stanja u PIPE indekse
[0139] Ova modifikovana šema kodiranja može se koristiti kao osnova za pristup video kodiranju sa skalabilnim nivoom složenosti. Kada se vrši prilagođenje režima verovatnoće, selektor 402 ili kontekstualno prilagodljiv binarni aritmetički dekoder, respektivno, bi izabrao PIPE dekoder 322, tj. izveo pipe indeks koji će se koristiti i indeks verovatnoće u Rtab, respektivno, na osnovu verovatnoće indeksa stanja - ovde se na primer kreće od 0 do 62 -povezanim sa simbolom koji se trenutno dekodira - kao što je preko konteksta - koristeći mapiranje prikazano u Tabeli A, i ažurirao bi ovaj indeks stanja verovatnoće u zavisnosti od trenutno dekodiranog simbola koristeći, za na primer, specifične prelazne vrednosti tabele koje ukazuju na sledeći indeks stanja verovatnoće koji treba posetiti u slučaju MPS-a i LPS-a, respektivno. U slučaju LC režima, poslednje ažuriranje se može izostaviti. Čak bi se i mapiranje moglo izostaviti u slučaju globalno fiksnih modela verovatnoće.
[0140] Međutim, može se koristiti proizvoljno entropijsko kodiranje, a tehnike u ovom dokumentu se takođe mogu koristiti sa manjim adaptacijama.
[0141] Gornji opis Sl. 11 se generalno odnosio na elemente sintakse i tipove elemenata sintakse. U nastavku je opisano složeno konfigurabilno kodiranje nivoa koeficijenta transformacije.
[0142] Na primer, rekonstruktor 404 može biti konfigurisan da rekonstruiše blok 200 transformacije od nivoa 202 koeficijenata transformacije na osnovu dela sekvence elemenata sintakse nezavisno od toga da li je aktiviran režim visoke efikasnosti ili režim niske složenosti, pri čemu deo sekvence 327 elemenata sintakse sadrži, na način bez preplitanja, elemente sintakse mape značaja koji definišu mapu značaja koja ukazuje na položaje nivoa koeficijenta transformacije koji nije nula unutar bloka 200 transformacije, a zatim (praćen od) elemente sintaksnog nivoa koji definišu nivoi koeficijenta transformacije različiti od nule. Konkretno, mogu biti uključeni sledeći elementi: elementi sintakse krajnje pozicije (lost_significant_pos_x, last_significant_pos_y) koji ukazuju na poziciju poslednjeg nivoa koeficijenta transformacije koji nije nula unutar bloka transformacije; prvi elementi sintakse (coeff_significant_flag) zajedno definišu mapu značaja i ukazuju, za svaku poziciju duž jednodimenzionalne putanje (274) koja vodi od DC pozicije do pozicije poslednjeg nivoa koeficijenta transformacije koji nije nula u bloku transformacije (200), da li je nivo koeficijenta transformacije na odgovarajućoj poziciji različit od nule ili nije; drugi elementi sintakse (coeff_abs_greater1) koji pokazuju, za svaku poziciju jednodimenzionalne putanje (274) gde je, prema prvim elementima binarne sintakse, pozicioniran nivo koeficijenta transformacije različit od nule, da li je nivo koeficijenta transformacije na odgovarajućoj poziciji je veći od jedan; i treći elementi 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 je odgovarajući nivo koeficijenta transformacije na odgovarajućoj poziciji prelazi jedan.
[0143] Redosled među elementima sintakse krajnje pozicije, prvi, drugi i treći element sintakse može biti isti za režim visoke efikasnosti i režim niske složenosti, a selektor 402 može biti konfigurisan da izvrši izbor između entropijskih dekodera 322 za simbole iz kojih desimoblizer 314 dobija elemente sintakse krajnje pozicije, prve elemente sintakse, druge elemente sintakse i/ili treće elemente sintakse, različito u zavisnosti od toga da li je aktiviran režim niske složenosti ili režim visoke efikasnosti..
[0144] Konkretno, selektor 402 može biti konfigurisan, za simbole unapred određenog tipa simbola iz podsekvence simbola iz kojih de-simbolizator 314 dobija prve elemente sintakse i druge elemente sintakse, da bira za svaki simbol unapred određenog tipa simbola jedan od mnoštva konteksta u zavisnosti od prethodno preuzetih simbola unapred određenog tipa simbola među nizom simbola i izvrši izbor u zavisnosti od modela verovatnoće povezanog sa izabranim kontekstom u slučaju aktiviranja režima visoke efikasnosti i izvrši selekciju na parcijalno konstantan način tako da je selekcija konstantna preko uzastopnih neprekidnih poddelova podsekvence u slučaju režima niske složenosti. Kao što je gore opisano, poddelovi se mogu meriti u broju pozicija preko kojih se odgovarajući poddeo prostire kada se mere duž jednodimenzionalne putanje 274, ili u broju sintaksnih elemenata odgovarajućeg tipa koji su već kodirani trenutnim kontekstom. To jest, elementi binarne sintakse coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2, na primer, su kodirani kontekst adaptivno sa izborom dekodera 322 na osnovu modela verovatnoće izabranog konteksta u HE režimu. Takođe koristi se i adaptacija verovatnoće. U LC režimu, takođe postoje različiti koneksti koji se koriste za svaki od elemenata binarne 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 na prelazu na sledeći, neposredno sledeći deo duž putanje 274. Na primer, svaki deo se može definisati kao 4, 8, 16 pozicija bloka dužine 200, nezavisno od toga da li je za odgovarajuću poziciju odgovarajući element sintakse prisutan ili ne. Na primer, coeff_abs_greater1 i coeff_abs_greater2 su samo prisutni za značajne pozicije, tj. pozicije gde je – ili za koje je – coeff_significant_flag 1. Alternativno, svaki deo se može definisati da ima 4, 8, 16 dužinu elemenata sintakse, nezavisno od toga da li se tako rezultujući odgovarajući deo proteže na većem broju pozicija bloka. Na primer, coeff_abs_greater1 i coeff_abs_greater2 su samo prisutni za značajne pozicije, i stoga, svaki od delova od četiri elementa sintakse može da se proteže na više od 4 pozicije bloka zbog pozicija između njih duž putanje 274 za koje se takav element sintakse ne prenosi, kao kad ne postoje coeff_abs_greater1 i coeff_abs_greater2 jer je odgovarajući nivo na ovoj poziciji nula.
[0145] Selektor 402 može biti konfigurisan da, za simbole unapred određenog tipa simbola među nizom simbola iz kojih de-simbolizator dobija prve elemente sintakse i druge elemente sintakse, izabere za svaki simbol unapred određenog tipa simbola jedan od mnoštva konteksta u zavisnosti od broja prethodno preuzetih simbola unapred određenog tipa simbola unutar sekvence simbola, koji imaju unapred određenu vrednost simbola i pripadaju istom poddelu, ili broj prethodno preuzetih simbola unapred određenog tipa simbola unutar sekvence simbola, koji pripadaju istom poddelu. Prva alternativa je bila tačna za coeff_abs_greater1, a sekundarna alternativa je bila tačna za coeff_abs_greater2 u skladu sa gornjim specifičnim izvođenjima.
[0146] Dalje, treći elementi sintakse otkrivajući, za svaku poziciju jednodimenzionalne putanje gde je, prema prvim binarnim elementima sintakse, pozicioniran nivo koeficijenta transformacije veći od jedan, iznos za koji je odgovarajući nivo koeficijenta transformacije na odgovarajuća pozicija prelazi jedan, mogu sadržati sintaksne elemente sa celobrojnim vrednostima, tj. coeff_abs_minus3, a desimbolizator 314 može biti konfigurisan da koristi funkciju mapiranja koju se kontroliše kontrolni parametar da bi mapirao domen reči sekvence simbola u ko-domen elementa sintakse sa celobrojnom vrednošću, i da postavi kontrolni parametar po elementu sintakse sa celobrojnim vrednostima u zavisnosti od elemenata sintakse sa celobrojnim vrednostima prethodnih trećih elemenata sintakse ako je aktiviran režim visoke efikasnosti i izvrši podešavanje na miran konstantan način tako da je podešavanje je konstantno preko uzastopnih neprekidnih delova podsekvence u slučaju da je aktiviran režim niske složenosti, pri čemu selektor 402 može biti konfigurisan da izabere jednog unapred određenog od entropijskih dekodera (322) za simbole reči sekvence simbola mapiranih na elemente sintakse sa celobrojnim vrednostima, što je povezano sa jednakom distribucijom verovatnoće, i u režimu visoke efikasnosti i u režimu niske složenosti. To jest, čak i desimbolizator može da radi u zavisnosti od izabranog režima od strane prekidača 400 je ilustrovano isprekidanom linijom 407. Umesto neprekidnog konstantnog podešavanja kontrolnog parametra, desimbolizator 314 može da zadrži kontrolni parametar konstantnim tokom trenutnog isečka, npr., ili konstantnim globalno u vremenu.
[0147] Zatim je opisano kontekstualno modeliranje skalabilne kompleksnosti.
[0148] Procena 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 sintaksni element razlike vektora kretanja. Međutim, ova evaluacija zahtevaveća skladištenja prostora bafera i onemogućava direktno kodiranje elementa sintakse. Takođe, da bi se postigle veće performanse kodiranja, može biti procenjivano više dostupnih suseda.
[0149] U jednom poželjnom izvođenju, sve faze modeliranja konteksta koja procenjuje sintaksne elemente susednih kvadratnih ili pravougaonih blokova ili jedinica za predviđanje su fiksirane na 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 bin stringa posle binarizacije nije modifikovan u poređenju sa trenutnim dizajnom za CABAC. U drugom poželjnom izvođenju, pored modela fiksnog konteksta za
4
elemente sintakse koristi se procena suseda, takođe je kontekstni model za različite bin indekse je fiksiran. Treba uočiti da opis ne uključuje binarizaciju i izbor kontekstnog modela za razliku vektora kretanja i elemente sintakse koji se odnose na kodiranje nivoa koeficijenta transformacije.
[0150] U jednom poželjnom izvođenju, dozvoljena je samo evaluacija levog suseda. Ovo dovodi do smanjenog bafera u lancu obrade jer poslednji blok ili linija jedinice kodiranja više ne moraju da se čuvaju. U jednom daljem poželjnom izvođenju, procenjuju se samo susedi koji leže u istoj jedinici kodiranja.
[0151] U jednom poželjnom izvođenju, procenjuju se svi dostupni susedi. Na primer, pored gornjeg i levog suseda, gornji levi, gornji desni i donji levi sused se procenjuju u slučaju dostupnosti.
[0152] To jest, selektor 402 sa Sl. 11 može biti 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 aktiviranja režima visoke efikasnosti da bi se izabrao jedan od mnoštva konteksta i izvršio izbor između entropijskih dekodera 322 u zavisnosti od modela verovatnoće koji je povezan sa izabranim kontekstom. To jest, susedni blokovi mogu biti 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 reaguje na izbor režima pomoću prekidača 400 režima da bi izvršio prilagođavanje kontakta na osnovu prethodno preuzetih simbola ili elemenata sintakse koji se odnose na veći broj susednih blokova u slučaju HE režima u poređenju sa LC režimom čime se smanjuju troškovi skladištenja kao što je upravo opisano.
[0153] Zatim je opisano kodiranje razlika vektora kretanja smanjene složenosti u skladu sa jednim izvođenjem.
[0154] U standardu video kodeka H.264/AVC, vektor kretanja povezan sa makroblokom se prenosi signaliziranjem razlike (razlika vektora kretanja - mvd) između vektora kretanja trenutnog makrobloka i srednjeg prediktora vektora kretanja. Kada se CABAC koristi kao entropijski koder, mvd je kodiran na sledeći način. Mvd sa celobrojnim vrednostima se deli na apsolutni deo i deo predznaka. Apsolutni deo je binarizovan korišćenjem kombinacije skraćenog unarnog i Exp-Golomb trećeg reda, koji se naziva prefiksom i sufiksom rezultujućeg bin niza. Binovi koji se odnose na skraćenu unarnu binarizaciju su kodirani korišćenjem kontekstualnih modela, dok su binovi povezani sa Exp-Golomb-ovom binarizacijom kodirani u bajpas režimu, odnosno sa fiksnom verovatnoćom od 0,5 sa CABAC. Unarna binarizacija funkcioniše na sledeći način. Neka je apsolutna celobrojna vrednost mvd n, onda se rezultujući bin niz sastoji od n puta '1' i jednog zadnjeg '0'. Kao primer, neka je n = 4, tada je string bin '11110'. U slučaju skraćenog unarnog, ograničenje postoji i ako vrednost prelazi ovo ograničenje, bin string se sastoji od n 1 puta '1'. Za slučaj 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 niz se sastoji od prefiksa i sufiksa sa Exp- Golombovom binarizacijom. Modeliranje konteksta za skraćeni unarni deo radi se na sledeći način. Za prvi bin bin niza, uzimaju se apsolutne mvd vrednosti sa vrha i makroblokova levog suseda ako su dostupni (ako nisu dostupni, pretpostavlja se da je vrednost 0). Ako je zbir za određenu komponentu (horizontalni ili vertikalni pravac) veći od 2, bira se drugi kontekstualni model, ako je apsolutni zbir veći od 32, bira se treći kontekstni model, u suprotnom (apsolutni zbir je manji od 3) izabran je prvi kontekstni model. Štaviše, modeli konteksta su različiti za svaku komponentu. Za drugi bin iz bin niza, koristi se četvrti kontekstni model, a peti kontekstni model se koristi za preostale binove unarnog dela. Kada je apsolutni mvd jednak ili veći od 9, npr. svi binovi skraćenog unarnog dela jednaki su '1', razlika između apsolutne vrednosti mvd i 9 se kodira u bajpas modu sa Exp-Golomb binarizacijom 3. reda. U poslednjem koraku, znak mvd je kodiran u bajpas režimu.
[0155] Najnovija tehnika kodiranja za mvd kada se koristi CABAC kao entropijski koder je specificirana u trenutnom modelu testiranja (HM) projekta High Efficienci Video Coding (HEVC). U HEVC-u, veličine bloka su promenljive, a oblik određen vektorom kretanja se naziva jedinica predviđanja (PU). Veličina PU gornjeg i levog suseda može imati druge oblike i veličine od trenutne PU. Stoga, kad god je relevantno, definicija gornjeg i levog suseda se sada nazivaju gornji i levi sused gornjeg levog ugla trenutnog PU. Za samo kodiranje, samo proces derivacije za prvi bin može da se promeni u skladu sa jednim izvođenjem. Umesto da se procenjuje apsolutni zbir MV od suseda, svaki sused se može proceniti zasebno. Ako je apsolutni MV suseda dostupan i veći od 16, indeks kontekstnog modela se može povećati što rezultira istim brojem kontekstualnih modela za prvi bin, dok je kodiranje preostalog apsolutnog MVD nivoa i znak potpuno isti kao u H.264/AVC.
[0156] U gore navedenoj tehnici kodiranja mvd-a, do 9 binova mora biti kodirano kontekstualnim modelom, dok se preostala vrednost mvd-a može kodirati u bajpas režimu niske složenosti zajedno sa informacijama o znaku. Ovo sadašnje izvođenje opisuje tehniku za smanjenje broja binova kodiranih kontekstualnim modelima što rezultira povećanim brojem zaobilaženja i smanjuje broj kontekstualnih modela potrebnih za kodiranje mvd. Za to se granična vrednost smanjuje sa 9 na 1 ili 2. To znači da je samo prvi bin koji specificira da li je apsolutno mvd veće od nule kodirano korišćenjem kontekstnog modela ili prvog i drugog bina koji specificiraju da li je apsolutno mvd veće od nule i jedan se kodira korišćenjem kontekstnog modela, dok se preostala vrednost kodira u bajpas režimu i/ili korišćenjem VLC koda. Svi binovi koji su rezultat binarizacije korišćenjem VLC koda – bez korišćenja unarnog ili skraćenog unarnog koda – su kodirani korišćenjem bajpas režima niske složenosti. U slučaju PIPE-a, moguće je direktno umetanje u bitstream i ekstrahovanje iz njega. Štaviše, drugačija definicija gornjeg i levog suseda da bi se dobio bolji izbor kontekstnog modela za prvi bin, može se koristiti, ako bi se ikada i koristio.
[0157] U jednom poželjnom izvođenju, Exp-Golomb-ovi kodovi se koriste za binarizaciju preostalog dela apsolutnih MVD komponenti. Za to je redosled Exp-Golomb.ovog koda promenljiv. Redosled Exp-Golomb-ovog koda je izveden na sledeći način. Nakon što se izvede i kodira kontekstni model za prvi bin, a samim tim i indeks tog kontekstnog modela, indeks se koristi kao redosled za deo Exp-Golomb binarizacije. U ovom poželjnom izvođenju, model konteksta za prvi bin je u rasponu od 1 - 3, što rezultira indeksom 0 - 2, koji se koristi kao redosled Exp-Golomb-ovog koda. Ova poželjno izvođenje se može koristiti u HE slučaju.
[0158] Kao alternativa gore opisanoj tehnici korišćenja dva puta po pet konteksta u kodiranju apsolutnog MVD-a, da bi se kodiralo 9 binova binarizacijom unarnog koda, moglo bi se koristiti i 14 kontekstualnih modela (7 za svaku komponentu). Na primer, dok bi prvi i drugi bin unarnog dela mogli biti kodirani sa četiri različita konteksta kao što je prethodno opisano, peti kontekst bi se mogao koristiti za treći bin, a šesti kontekst bi se mogao koristiti u odnosu na četvrti bin, dok su binovi od petog do devetog kodirani korišćenjem sedmog konteksta. Dakle, u ovom slučaju bi bilo potrebno čak 14 konteksta, a samo preostala vrednost se može kodirati u bajpas režimu niske složenosti. Tehnika za smanjenje broja binova kodiranih kontekstualnim modelima što rezultira povećanim brojem zaobilaženja i smanjenjem broja kontekstualnih modela potrebnih za kodiranje MVD-a je smanjenje granične vrednosti kao što je, na primer, sa 9 na 1 ili 2. To znači da bi samo prvi bin koja specificira da li je apsolutno MVD veće od nule bio kodiran korišćenjem kontekstnog modela ili bi prvi i drugi bin koja specificira da li je apsolutno MVD veće od nule i jedan bi bio kodiran korišćenjem odgovarajućeg modela konteksta, dok je preostala vrednost kodirana VLC kodom. Svi binovi koji su rezultat binarizacije korišćenjem VLC koda su kodirani korišćenjem bajpas režima niske složenosti. U slučaju PIPE-a, moguće je direktno umetanje u bitstream i ekstrhovanje iz njega. Štaviše, predstavljena varijanta koristi drugu definiciju gornjeg i levog suseda da bi se izveo bolji izbor kontekstnog modela za prvi bin. Pored toga, modeliranje konteksta je modifikovano na način da se smanji broj kontekstualnih modela potrebnih za prvi ili prvi i drugi bin što dovodi do daljeg smanjenja memorije. Takođe, evaluacija suseda kao što je gornji sused može biti onemogućena što rezultira uštedom linijskog bafera/memorije potrebne za skladištenje mvd vrednosti suseda. Konačno, redosled kodiranja komponenti se može podeliti na način koji omogućava kodiranje prefiksnih binova za obe komponente (tj. binove kodirane kontekstualnim modelima) nakon čega sledi kodiranje zaobilaznih binova.
[0159] U jednom poželjnom izvođenju, Exp-Golomb-ovi kodovi se koriste za binarizaciju preostalog dela apsolutnih mvd komponenti. Za to je redosled Exp-Golomb-ovog koda promenljiv. Red Exp-Golomb-ovog koda može se izvesti na sledeći način. Nakon što se izvede kontekstni model za prvibin, a samim tim i indeks tog kontekstnog modela, indeks se koristi kao red za Exp-Golomb-ovu binarizaciju. U ovom poželjnom izvođenju, model konteksta za prvi bin je u rasponu od 1 - 3, što rezultira indeksom 0 - 2, koji se koristi kao red Exp-Golomb-ovog koda. Ovo poželjno izvođenje se može koristiti za slučaj HE i broj kontekstualnih modela je smanjen na 6. Da bi se ponovo smanjio broj kontekstualnih modela i time uštedela memorija, u jednom daljem poželjnom izvođenju horizontalna i vertikalna komponenta mogu da dele iste kontekstualne modele. U tom slučaju su potrebna samo 3 kontekstualna modela. Štaviše, u jednom daljem poželjnom izvođenju se za procenu može uzeti u obzir samo levi sused. U tom poželjnom izvođenju, prag može biti neizmenjen (npr. samo pojedinačni prag od 16 što rezultira Exp-Golomb-ovim parametrom od 0 ili 1 ili pojedinačnim pragom od 32 što rezultira Exp-Golomb-ovim parametrom od 0 ili 2). Ovo poželjno izvođenje čuva linijski bafer potreban za skladištenje mvd -a. U jednom drugom poželjnom izvođenju, prag je modifikovan i jednak je 2 i 16. Za to poželjno izvođenje, potrebna su ukupno 3 kontekstualna modela za kodiranje mvd- a i mogući Exp-Golomb-ov parametar je u rasponu od 0 - 2. U jednom daljem poželjnom izvođenju, prag je jednak 16 i 32. Opet, opisano izvođenje je pogodno za slučaj HE.
[0160] U jednom daljem poželjnom izvođenju pronalaska, granična vrednost je smanjena sa 9 na 2. U ovom poželjnom izvođenju, prvi bin i drugi bin mogu biti kodirani korišćenjem kontekstnih modela. Izbor kontekstnog modela za prvi bin može da se uradi kao u stanju tehnike ili da se modifikuje na način gore opisan u poželjnom izvođenju. Za drugi bin se bira poseban kontekstni model kao u stanju tehnike. U jednom daljem poželjnom izvođenju, model konteksta za drugi bin se bira procenom mvd levog suseda. U tom slučaju, indeks kontekstnog modela je isti kao za prvi bin, dok su dostupni modeli konteksta drugačiji od onih za prvi bin. Ukupno je potrebno 6 kontekstualnih modela treba imati na umu da komponente dele kontekstualne modele). Opet, Exp-Golomb-ov parametar može zavisiti od izabranog indeksa kontekstnog modela prvog bina. U drugom poželjnom izvođenju pronalaska, Exp-Golomb-ov parametar zavisi od indeksa kontekstnog modela drugog bina. Opisana izvođenja pronalaska se mogu koristiti za slučaj HE.
4
[0161] U jednom daljem poželjnom izvođenju pronalaska, modeli konteksta za oba bina su fiksni i nisu izvedeni procenom bilo levog ili gornjeg suseda. Za ovo poželjno izvođenje, ukupan broj kontekstnih modela je jednak 2. U jednom daljem poželjnom izvođenju pronalaska, prvi bin i drugi bin dele isti kontekstni model. Kao rezultat, potreban je samo jedan kontekstni model za kodiranje mvd- a. U oba poželjna izvođenja pronalaska, Exp-Golomb-ov parametar može biti fiksan i biti jednak 1. Opisano poželjno izvođenje pronalaska je pogodno i za HE i za LC konfiguraciju.
[0162] U drugom poželjnom izvođenju, red Exp-Golomb-ovog dela se izvodi nezavisno od indeksa kontekstnog modela prvog bina. U ovom slučaju, apsolutni zbir uobičajenog kontekstnog izbora modela H.264/AVC se koristi za izvođenje redosleda za Exp- Golomb-ov deo. Ovo poželjno izvođenje se može koristiti za HE slučaj.
[0163] U jednom daljem poželjnom izvođenju, red Exp-Golomb-ovih kodova je fiksiran i postavljen je na 0. U drugom poželjnom izvođenju, red Exp-Golomb-ovih kodova je fiksiran i postavljen na 1. U poželjnom izvođenju, red Exp-Golomb-ovih kodova je fiksiran na 2. U sledećoem izvođenju, red Exp-Golomb-ovih kodova je fiksiran na 3. U sledećem izvođenju, red Exp-Golomb-ovih kodova je fiksiran prema obliku i veličini trenutne PU. Predstavljena poželjna izvođenja mogu se koristiti za LC slučaj. Treba uočiti da se fiksni red Exp-Golombovog dela razmatra sa smanjenim brojem binova kodiranih kontekstualnim modelima.
[0164] U jednom poželjnom izvođenju, susedi su definisani na sledeći način. Za gornju PU, sve PU koje pokrivaju trenutnu PU se uzimaju u obzir i koristi se PU sa najvećim MV. Ovo se radi takođe i za levog suseda. Sve PU koje pokrivaju trenutnu PU procenjuju se i koristi se PU sa najvećim MV. U drugom poželjnom izvođenju, prosečna apsolutna vrednost vektora kretanja iz svih PU koje pokrivaju gornju i levu ivicu trenutne PU se koristi za izvođenje prvog bina.
[0165] Za gore prikazana poželjna izvođenja, moguće je promeniti redosled kodiranja na sledeći način. Mvd moraju biti specificirani za horizontalni i vertikalni pravac jedan za drugim (ili obrnuto). Dakle, dva bin stringa moraju biti kodirana. Da bi se minimizirao broj prebacivanja režima za mašinu za entropijsko kodiranje (tj. prebacivanje između bajpas i regularnog režima), moguće je u prvom koraku kodirati binove kodirane kontekstualnim modelima za obe komponente, a zatim u drugom koraku kodirati binove kodirane u bajpas režimu. Treba imati u vidu da je ovo samo preuređivanje.
[0166] Treba imati u vidu da binovi koji su rezultat unarne ili skraćene unarne binarizacije takođe mogu biti predstavljeni ekvivalentnom binarizacijom fiksne dužine sa jednim flegom po indeksu bina koji specificira da li je vrednost veća od trenutnog indeksa bina. Kao primer, granična vrednost za skraćenu unarnu binarizaciju mvd-a je postavljena na 2, što dovodi do kodnih reči 0, 10, 11 za vrednosti 0, 1, 2. U odgovarajućoj binarizaciji fiksne dužine sa jednim flegom po indeksu bina, jedan fleg za bin indeks 0 (tj. prvi bin) specificira da li je apsolutna mvd vrednost veća od 0 ili ne, a jedan fleg za drugi bin sa bin indeksom 1 određuje da li je apsolutna vrednost mvd veća od 1 ili ne. Kada je drugi fleg kodiran samo kada je prvi fleg jednak 1, to rezultira istim kodnim rečima 0, 10, 11.
[0167] Sledeće, opisano je složeno skalabilno predstavljanje unutrašnjeg stanja modela verovatnoće u skladu sa jednim izvođenjem.
[0168] U HE-PIPE podešavanju, interno stanje modela verovatnoće se ažurira nakon kodiranja bina sa njim. Ažurirano stanje se izvodi traženjem u tabeli prelaza stanja koristeći staro stanje i vrednost kodiranog bina. U slučaju CABAC, model verovatnoće može uzeti 63 različita stanja gde svako stanje odgovara verovatnoći modela u intervalu (0,0, 0,5). Svako od ovih stanja se koristi za realizaciju dve verovatnoće modela. Pored verovatnoće dodeljene stanju, koristi se i 1,0 minus verovatnoća, a fleg koja se zove valMps čuva informaciju bilo da se koristi verovatnoća ili 1,0 minus verovatnoća. To dovodi do ukupno 126 stanja. Da bi se koristio takav model verovatnoće sa konceptom kodiranja PIPE, svako od 126 stanja treba da bude mapirano u jedan od dostupnih PIPE kodera. U trenutnim implementacijama PIPE kodera, ovo se radi korišćenjem tabele pretraživanja (lukap-tabela). Primer takvog mapiranja je prikazan u Tabeli A.
[0169] U nastavku je opisano jedno izvođenje kako se unutrašnje stanje modela verovatnoće može predstaviti da bi se izbeglo korišćenje lukap tabele za pretvaranje unutrašnjeg stanja u PIPE indeks. Potrebne su samo neke jednostavne operacije maskiranja bita da bi se izdvojio PIPE indeks iz interne promenljive stanja modela verovatnoće. Ovo novo, skalabilno po složenosti predstavljanje unutrašnjeg stanja modela verovatnoće je dizajnirano na dva nivoa. Za aplikacije gde je operacija male složenosti obavezna, koristi se samo prvi nivo. On opisuje samo pipe indeks i valMps flegove koji se koriste za kodiranje ili dekodiranje povezanih binova. U slučaju opisane šeme PIPE entropijskog kodiranja, prvi nivo se može koristiti za razlikovanje između 8 različitih verovatnoća modela. Dakle, prvom nivou bi bilo potrebno 3 bita za pipeIdk i još jedan bit za valMps fleg. Sa drugim nivoom svaki od grubih opsega verovatnoće prvog nivoa se rafiniše u nekoliko manjih intervala koji podržavaju prezentaciju verovatnoća u višim rezolucijama. Ovo detaljnije predstavljanje omogućava precizniji rad procena verovatnoće. Generalno, pogodan je za aplikacije kodiranja koje imaju za cilj visoke RD performanse. Kao primer, ovo u pogledu složenosti skalirano predstavljanje unutrašnjeg stanja modela verovatnoćeuz korišćenje PIPE je ilustrovano na sledeći način:
[0170] Prvi i drugi nivo se čuvaju u jednoj 8-bitnoj memoriji. Za skladištenje prvog nivoa potrebna su 4 bita – indeks koji definiše PIPE indeks sa vrednošću MPS-a na najznačajnijem bitu – a još 4 bita se koriste za čuvanje drugog nivoa. Za implementaciju ponašanja CABAC procene verovatnoće, svaki PIPE indeks ima određeni broj dozvoljenih indeksa finoće u zavisnosti od toga koliko je CABAC stanja mapirano na PIPE indeksu. Na primer, za mapiranje u Tabeli A, broj CABAC stanja po PIPE indeksu je prikazan u Tabeli B.
[0171] Tokom procesa kodiranja ili dekodiranja bina, PIPE indeksu i valMps se može pristupiti direktno upotrebom jednostavne maske bita ili operacije pomeranja bita. Procesi kodiranja niske složenosti zahtevaju samo 4 bita prvog nivoa, a procesi kodiranja visoke efikasnosti mogu dodatno da koriste 4 bita drugog nivoa da izvrše ažuriranje modela verovatnoće CABAC procene verovatnoće. Za sprovođenje ovog ažuriranja, može se
4
dizajnirati tabela za traženje prelaza stanja koja radi iste prelaze stanja kao originalna tabela, ali koristeći dvoslojnu reprezentaciju stanja na dva nivoa. Originalna tabela prelaza stanja sastoji se od dva puta 63 elementa. Za svako ulazno stanje ona sadrži dva izlazna stanja. Kada se koristi reprezentacija skalabilne složenosti, veličina tabele prelaza stanja ne prelazi 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 finoće i da bi se tačno emuliralo ponašanje CABAC procene verovatnoće, potrebna su četiri bita. Međutim, može se koristiti drugačija procena verovatnoće, koja može da radi na smanjenom skupu CABAC stanja tako da za svaki pipe indeks nije dozvoljeno više od 8 stanja. Zbog toga se potrošnja memorije može uskladiti sa datim nivoom složenosti procesa kodiranja prilagođavanjem broja bitova koji se koriste za predstavljanje indeksa finoće. U poređenju sa internim stanjem verovatnoća modela sa CABAC – gde postoje 64 indeksa stanja verovatnoće – izbegava se upotreba pregleda tabele za mapiranje verovatnoća modela na određeni PIPE kod i nije potrebna dalja konverzija.
[0172] Dalje je opisano ažuriranje modela konteksta skalabilne kompleksnosti u skladu sa jednim izvođenjem.
[0173] Za ažuriranje kontekstnog modela, njegov indeks stanja verovatnoće može da se ažurira na osnovu jednog ili više prethodno kodiranih binova. U podešavanju HE-PIPE, ovo ažuriranje se vrši nakon kodiranja ili dekodiranja svakog bina. Nasuprot tome, u podešavanju LC-PIPE, ovo ažuriranje možda nikada neće biti obavljeno.
[0174] Međutim, moguće je izvršiti ažuriranje kontekstnih modela na način koji je skalabilan po složenosti. Odnosno, odluka da li da se kontekstni model ažurira ili ne može biti zasnovana na različitim aspektima. Na primer, podešavanje kodera bi moglo da ne vrši ažuriranja samo za određene kontekstne modele kao što su npr. elementi sintakse modela konteksta coeff_significant_flag, i uvek ažurira za sve druge modele konteksta.
[0175] Drugim rečima, selektor 402 može biti konfigurisan da, za simbole svakog od brojnih unapred određenih tipova simbola, izvrši izbor između entropijskih dekodera 322 u zavisnosti od odgovarajućeg modela verovatnoće koji je povezan sa odgovarajućim unapred određenim simbolom tako da broj unapred određenih tipova simbola je niži u režimu niske složenosti nego u poređenju sa režimom visoke efikasnosti
[0176] Štaviše, kriterijumi za kontrolu da li da se ažurira model konteksta ili ne mogu biti, npr. veličina paketa toka bitova, broj do sada dekodiranih binova ili se ažuriranje vrši tek nakon kodiranja određenog fiksnog ili promenljivog broja binova za kontekstni model.
[0177] Sa ovom šemom za odlučivanje da li ažurirati kontekstualne modele ili ne, može se primeniti ažuriranje kontekstnog modela skalabilnog po složenosti. To omogućava povećanje ili smanjenje dela binova u toku bitova za koje se vrši ažuriranje kontekstnog modela. Što je veći broj ažuriranja kontekstnog modela, to je bolja efikasnost kodiranja i veća složenost računara. Dakle, pomoću opisane šeme može se postići ažuriranje kontekstnog modela skalabilnog po složenosti.
[0178] U jednom poželjnom izvođenju, ažuriranje kontekstnog modela se vrši za binove svih elemenata sintakse osim sintaksnih elemenata coeff_significant-flag, coeff_abs_greater1 i coeff_abs_greater2.
4
[0179] U jednom daljem poželjnom izvođenju, ažuriranje kontekstnog modela se vrši samo za binove sintaksnih elemenata coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2.
[0180] U jednom daljem poželjnom izvođenju, ažuriranje kontekstnog modela se vrši za sve kontekstualne modele kada započne kodiranje ili dekodiranje isečka. Nakon obrade određenog unapred definisanog broja blokova transformacije, ažuriranje kontekstnog modela je onemogućeno za sve kontekstualne modele dok se ne dostigne kraj isečka.
[0181] Na primer, selektor 402 može biti konfigurisan da, za simbole unapred određenog tipa simbola, izvrši izbor između entropijskih dekodera 322 u zavisnosti od modela verovatnoće povezanog 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 nad kojima se vrši izbor simbola unapred određenog tipa simbola zajedno sa ažuriranjem, kraća u režimu niske složenosti u poređenju sa režimom visoke efikasnosti.
[0182] Jedno dalje poželjno izvođenje je identično prethodno opisanom poželjnom izvođenju, ali koristi skalabilnu reprezentaciju unutrašnjeg stanja kontekstualnih modela na način, tako da jedna tabela čuva „prvi deo“ (valMps i pipeIdx) svih kontekstnih modela, a druga tabela čuva „drugi deo“ (refineIdx) svih kontekstnih modela. U trenutku kada je ažuriranje kontekstnog modela onemogućeno za sve kontekstualne modele (kao što je opisano u prethodnom poželjnom izvođenju), tabela u kojoj se čuva „drugi deo“ više nije potrebna i može se odbaciti.
[0183] Dalje je opisano ažuriranje kontekstnog modela za sekvencu binova u skladu sa jednim izvođenjem.
[0184] U LC-PIPE konfiguraciji, binovi elemenata sintakse tipa coeff_significant_flag, coeff_abs_greater_1 i coeff_abs_greater2 su grupisani u podskupove. Za svaki podskup, jedan kontekstni model se koristi za kodiranje njegovih binova. U ovom slučaju, ažuriranje kontekstnog modela se može izvršiti nakon kodiranja fiksnog broja binova ove sekvence. Ovo se u nastavku označava višestruko ažuriranje. Međutim, ovo ažuriranje se može razlikovati od ažuriranja koje koristi samo poslednji kodirani bin i unutrašnje stanje kontekstnog modela. Na primer, za svaki bin koji je kodiran, sprovodi se jedan korak ažuriranja kontekstnog modela.
[0185] U nastavku su dati primeri za kodiranje primernog podskupa koji se sastoji od 8 binova. Slovo 'b' označava dekodiranje bina, a slovo 'u' označava ažuriranje kontekstnog modela. U slučaju LC-PIPE samo se dekodiranje bina vrši bez ažuriranja kontekstnog modela: bbbbbbbb
[0186] U slučaju HE-PIPE, nakon dekodiranja svakog bina, vrši se ažuriranje kontekstnog modela:
bububububububububu
[0187] Da bi se donekle smanjila složenost, ažuriranje kontekstnog modela se može obaviti nakon sekvence binova (u ovom primeru nakon svaka 4 bina, vrše se ažuriranja ova 4 bina): bbbbuuuubbbbuuuu
[0188] To jest, selektor 402 može biti konfigurisan da, za simbole unapred određenog tipa simbola, izvrši izbor između entropijskih dekodera 322 u zavisnosti od modela verovatnoće koji je povezan sa unapred određenim tipom simbola zajedno sa ili bez ažuriranja pridruženog
4
modela verovatnoće tako da je frekvencija na kojoj se izbor simbola unapred određenog tipa simbola vrši zajedno sa ažuriranjem, niža u režimu niske složenosti u poređenju sa režimom visoke efikasnosti
[0189] U ovom slučaju, nakon dekodiranja 4 bina, slede 4 koraka ažuriranja na osnovu 4 upravo dekodirana bina. Treba napomenuti da se ova četiri koraka ažuriranja mogu sprovesti u jednom koraku korišćenjem posebne tabele za traženje. Ova lukap tabela čuva za svaku moguću kombinaciju od 4 bina i svako moguće interno stanje kontekstnog modela rezultujući novo stanje nakon četiri uobičajena koraka ažuriranja.
[0190] U određenom režimu, multi-bin ažuriranje se koristi za sintaksni element 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 obavi korak ažuriranja sa više binova je postavljen na n. Kada broj binova u skupu nije deljiv sa n, 1 do n-1 binova ostaje na kraju podskupa nakon poslednjeg multi-bin ažuriranja. Za svaki od ovih binova, uobičajeno ažuriranje jednog bina se vrši nakon kodiranja svih ovih binova. Broj n može biti bilo koji pozitivan broj veći od 1. Drugi režim bi mogao biti identičan prethodnom režimu, osim što se ažuriranje sa više binova vrši za proizvoljne kombinacije coeff_significant_flag, coeff_abs_greater1 i coeff_abs_greater2 (umesto samo coeff_significant_flag). Dakle, ovaj režim bi bio složeniji od drugog. Svi ostali elementi sintakse (gde se ne koristi ažuriranje više binova) mogu se podeliti na dva nepovezana podskupa gde se za jedan od podskupova koristi jedno ažuriranje binova, a za drugi podskup se ne koristi ažuriranje kontekstnog modela. Svi mogući disjunktni podskupovi su važeći (uključujući prazan podskup).
[0191] U jednom alternativnom izvođenju, ažuriranje više binova može se zasnivati samo na poslednjih m binova koji su kodirani neposredno pre koraka ažuriranja više binova. m može biti bilo koji prirodan broj manji od n. Dakle, dekodiranje bi se moglo uraditi na sledeći način:
bbbbuubbbbuubbbbuubbbb ...
sa n=4 i m=2.
[0192] To jest, selektor 402 može biti konfigurisan da, za simbole unapred određenog tipa simbola, izvrši izbor između entropijskih dekodera 322 u zavisnosti od modela verovatnoće koji je povezan sa unapred određenim tipom 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 složenosti u poređenju sa režimom visoke efikasnosti.
[0193] U jednom daljem poželjnom izvođenju, za sintaksni element coeff_significant_flag, šema za modeliranje konteksta koristeći lokalni šablon kao što je gore opisano za HE-PIPE konfiguraciju može se koristiti za dodeljivanje kontekstnih modela binovima elementa sintakse. Međutim, za ove binove se ne koristi ažuriranje kontekstnog modela.
[0194] Dalje, selektor 402 može biti konfigurisan da, za simbole unapred određenog tipa simbola, izabere jedan od brojnih konteksta u zavisnosti od broja prethodno preuzetih simbola iz sekvence simbola i izvrši selekciju između entropijskih dekodera 322 u zavisnosti od modela verovatnoće koji je povezan sa izabranim kontekstom, tako da je broj konteksta i/ili broj prethodno preuzetih simbola manji u režimu niske složenosti u poređenju sa režimom visoke efikasnosti.
4
Inicijalizacija modela verovatnoće korišćenjem 8-bitnih vrednosti inicijalizacije
[0195] Ovaj odeljak opisuje proces inicijalizacije složenog skalabilnog unutrašnjeg stanja modela verovatnoće koristeći takozvanu 8-bitnu vrednost inicijalizacije umesto dve 8-bitne vrednosti kao što je slučaj u najsavremenijem standardu za video kodiranje H.265/AVC. Sastoji se od dva dela koji su uporedivi sa parovima vrednosti inicijalizacije koji se koriste za modele verovatnoće u CABAC-u H.264/AVC. Ova dva dela predstavljaju dva parametra linearne jednačine za izračunavanje početnog stanja modela verovatnoće, koji predstavlja određenu verovatnoću (npr. u obliku PIPE indeksa) iz QP:
· Prvi deo opisuje nagib i koristi zavisnost unutrašnjeg stanja u odnosu na parametar kvantizacije (QP) koji se koristi tokom kodiranja ili dekodiranja.
· Drugi deo definiše PIPE indeks na datom QP kao i valMps.
[0196] Dva različita režima su dostupna za inicijalizaciju modela verovatnoće koristeći datu vrednost inicijalizacije. Prvi režim je označen kao QP-nezavisna inicijalizacija. Koristi samo PIPE indeks i valMps definisane u drugom delu vrednosti inicijalizacije za sve QP. Ovo je identično slučaju gde je nagib jednak 0. Drugi režim je označen kao inicijalizacija zavisna od QP i dodatno koristi nagib prvog dela vrednosti inicijalizacije da promeni PIPE indeks i da definiše indeks finoće. Dva dela 8-bitne vrednosti inicijalizacije su ilustrovana na sledeći način:
[0197] Sastoji se od dva 4-bitna dela. Prvi deo sadrži indeks koji ukazuje na 1 od 16 različitih unapred definisanih nagiba koji su uskladišteni u nizu. Unapred definisani nagibi se sastoje od 7 negativnih nagiba (indeks nagiba 0-6), jednog nagiba koji je jednak nuli (indeks nagiba 7) i 8 pozitivnih nagiba (indeks nagiba 8 -15). Nagibi su prikazani u Tabeli C.
Tabela C:
Sve vrednosti su skalirane sa faktorom 256 da bi se izbegla upotreba operacija sa pomičnim zarezom. Drugi deo je PIPE indeks koji izvodi 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 nego PIPE koder n - 1. Za svaki model verovatnoće dostupan je jedan PIPE indeks i on identifikuje PIPE koder čiji interval verovatnoće sadrži verovatnoću pvalMPs=1za QP = 26.
4
Tabela D: Mapiranje drugog dela inicijalizacione vrednosti u PIPE kodere i valMps: UR = unarni u rice kod,, TB = kod sa tri bina, BP = bin pipe kod, EP = jednaka verovatnoća nekodiran
[0198] QP i 8-bitna vrednost inicijalizacije su potrebne za izračunavanje inicijalizacije unutrašnjeg stanja modela verovatnoće računanjem jednostavne linearne jednačine u obliku y = m<∗>(QP - QPref) 256<∗>b. Treba primetiti da m definiše nagib koji je uzet 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"). Zatim, valMPS je 1 i pipeldx je jednak (y - 2048) >> 8 ako je y veće od 2047. U suprotnom, valMPS je 0 i pipeIdx je jednak (2047 - y) >> 8. Indeks finoće je jednak (((y-2048) & 255)<∗>numStates) >> 8 ako je valMPS jednak 1. U suprotnom, indeks finoće je jednak (((2047-y) & 255)<∗>numStates) >> 8. U oba slučaja, numStates je jednak broju CABAC stanja pipeIdx kao što je prikazano u Tabeli B.
[0199] Gornja šema se ne može koristiti samo u kombinaciji sa PIPE koderima, već i u vezi sa gore pomenutim CABAC šemama. U odsustvu PIPE-a, broj CABAC stanja, odnosno stanja verovatnoće između kojih se vrši prelaz stanja u ažuriranju verovatnoće (pState_current [bin]), po PIPE Idx (tj. odgovarajući najznačajniji bitovi pState_current [bin]) je tada samo skup parametara koji realizuje, u stvari, mirnu linearnu interpolaciju CABAC stanja u zavisnosti od QP. Štaviše, ova mirna linearna interpolacija takođe može biti praktično onemogućena u slučaju kada parametar numStates koristi istu vrednost za sve PIPE Idx. Na primer, postavljanje numStates na 8 za sve slučajeve daje ukupno 16<∗>8 stanja, a izračunavanje indeksa finoće se pojednostavljuje na ((y-2048) & 255) >> 5 za valMPS jednako 1 ili ((2047-y) & 255) >> 5 za valMPS jednako 0. U ovom slučaju, mapiranje reprezentacije pomoću valMPS, PIPE idx i finoće idx nazad u reprezentaciju koju koristi originalni CABAC H.264/AVC je veoma jednostavno. CABAC stanje je dato kao (PIPE Idx << 3) finoća Idx. Ovaj aspekt je dalje opisan u nastavku u vezi sa Sl.16.
[0200] Osim ako je nagib 8-bitne vrednosti inicijalizacije jednak nuli ili osim ako QP nije jednak 26, potrebno je izračunati unutrašnje stanje korišćenjem linearne jednačine sa QP procesa kodiranja ili dekodiranja. U slučaju da je nagib jednak nuli ili da je QP trenutnog procesa kodiranja jednak 26, drugi deo 8-bitne vrednosti inicijalizacije može se koristiti direktno za inicijalizaciju unutrašnjeg stanja modela verovatnoće. U suprotnom, decimalni deo rezultujućeg unutrašnjeg stanja može se dalje iskoristiti za određivanje indeksa finoće u aplikacijama kodiranja visoke efikasnosti linearnom interpolacijom između granica specifičnog PIPE kodera. U ovom poželjnom izvođenju, linearna interpolacija se izvršava jednostavnim množenjem decimalnog dela sa ukupnim brojem indeksa finoće dostupnih za trenutni PIPE koder i mapiranjem rezultata u najbliži celobrojni indeks finoće.
[0201] Proces inicijalizacije unutrašnjeg stanja modela verovatnoće može se menjati u odnosu na broj stanja indeksa verovatnoće PIPE. Konkretno, dvostruka pojava jednako verovatnog moda korišćenjem PIPE kodera E1, tj. korišćenje dva različita PIPE indeksa za razlikovanje između MPS-a koji je 1 ili 0, može se izbeći na sledeći način. Opet, proces bi se mogao pozvati tokom početka raščlanjivanja podataka isečka, a unos ovog procesa mogao bi biti 8-bitna vrednost inicijalizacije kao što je prikazano u tabeli E, koja bi se, na primer, prenosila unutar toka bitova za svaki model konteksta koji treba inicijalizovati.
T l E P n - i n ini l z m l r n
[0202] Prva 4 bita definišu indeks nagiba i dobijaju se maskiranjem bitova b4 - b7. Za svaki indeks nagiba nagib (m) je određen i prikazan u Tabeli.
T l F r n i r m nl i m z n i I x
[0203] Bitovi b0-b3, poslednja 4 bita vrednosti inicijalizacije od 8 bita, identifikuju probIdx i opisuju verovatnoću u unapred definisanom QP. probIdx 0 označava najveću verovatnoću za simbole sa vrednošću 0 i respektivno, probIdx 14 ukazuje na najveću verovatnoću za simbole sa vrednošću 1. Tabela G prikazuje za svaki probIdx odgovarajući pipeCoder i njegovu valMps.
Tabela G Mapiranje poslednja 4 bita dela inicijalizacione vrednosti u PIPE kodere i valMps: UR = unarni u rice kod, TB = kod sa tri bina, BP = bin pipe kod, EP = jednaka verovatnoća nekodirano
[0204] Sa obe vrednosti, proračun unutrašnjeg stanja bi se mogao uraditi korišćenjem linearne jednačine kao što je 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 se skaliraju sa faktorom 256 da bi se izbegla upotreba operacija sa pomičnim zarezom. Izlaz (y) ovog procesa predstavlja interno stanje modela verovatnoće u trenutnom QP i čuva se u 8 - bitnoj memoriji. Kao što je prikazano u G, unutrašnje stanje se sastoji od valMPs, pipeIdx i refineIdx.
T l H P n n r n n m l r n
1
[0205] Dodeljivanje refineIdx i pipeIdx je slično unutrašnjem stanju CABAC modela verovatnoće (pStateCtx) i predstavljeno je u H.
Tabela I Dodela i eIdx refineIdx i StateCtx
[0206] U jednom poželjnom izvođenju, probIdx je definisan na QP26. Na osnovu 8-bitne vrednosti inicijalizacije, unutrašnje stanje (valMps, pipeIdx i refineIdx) modela verovatnoće se obrađuje kako je opisano u sledećem pseudo-kodu:
[0207] Kao što je prikazano u pseudo kodu, refineIdx se izračunava linearnom interpolacijom između intervala pipeldx i kvantovanja rezultata na odgovarajući refineId. Ofset specificira ukupan broj refineIdx za svaki pipeIdx. Interval [7, 8) od fullCtxState/256 je podeljen na pola.
2
Interval [7, 7.5) je mapiran na pipeIdx = 0 i valMps = 0, a interval [7.5, 8) je mapiran u pipeIdx = 0 i valMps = 1. Sl. 15 prikazuje proces izvođenja unutrašnjeg stanja i prikazuje mapiranje fullCtxState /256 u pStateCtx.
[0208] Treba primetiti da nagib ukazuje na zavisnost probIdx-a i QP-a. Ako je slopeIdx od 8-bitne vrednosti inicijalizacije jednak 7 rezultujuće unutrašnje stanje modela verovatnoće je isto za sve QP-ove isečka - stoga je proces inicijalizacije unutrašnjeg stanja nezavisan od trenutnog QP-a isečka.
[0209] To jest, selektor 402 može da inicijalizuje pipe indekse koji će se koristiti za dekodiranje sledećeg dela toka podataka, kao što je ceo tok ili sledeći isečak, koristeći element sintakse koji ukazuje na veličinu koraka kvantizacije QP koji se koristi za kvantizaciju podataka ovog dela, kao što su nivoi koeficijenta transformacije sadržani u njemu koristeći ovaj sintaksni element kao indeks u tabelu koja može biti 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 odgovarajući referentni QPref ili druge podatke za svaki tip simbola. U zavisnosti od stvarnog QP trenutnog dela, selektor može da izračuna vrednost pipe indeksa koristeći odgovarajući unos tabele a indeksiran stvarnim QP i samim QP, kao što je množenjem a sa (QP-QPref). Jedina razlika u LC i HE režimu: Selektor izračunava rezultat samo sa manjom preciznošću u slučaju LC u poređenju sa HE režimom. Selektor može, na primer, da koristi samo celobrojni deo rezultata izračunavanja. U HE režimu, ostatak veće tačnosti, kao što je frakcioni deo, koristi se za izbor jednog od dostupnih indeksa finoće za odgovarajući pipe indeks kao što je naznačeno nižom tačnošću ili celobrojnim delom. Indeks finoće se koristi u HE režimu (u potencijalno ređe takođe u LC režimu) da bi se izvršilo prilagođenje verovatnoće, kao što je korišćenje gore pomenutog hodanja po tabeli. Kada se ostave dostupni indeksi za trenutni pipe indeks na višoj granici, onda se sledeći bira viši pipe indeks sa minimiziranjem indeksa finoće. Kada se ostave dostupni indeksi za trenutni pipe indeks na donjoj granici, sledeći donji indeks cevi se birai sa maksimiziranjem indeksa finoće na maksimum koji je dostupan za novi pipe indeks. Pipe indeks zajedno sa indeksom finoće definiše stanje verovatnoće, ali za izbor među delimičnim tokovima, selektor samo koristi pipe indeks . Indeks finoće služi samo za bliže praćenje verovatnoće ili sa finijom tačnošću.
[0210] Gornja diskusija je takođe pokazala, međutim, da se skalabilnost složenosti može postići nezavisno od PIPE ili CABAC koncepta kodiranja sa Sl.7 - 17, koristeći dekoder kao što je prikazano na Sl. 12. Dekoder sa Sl. 12 je za dekodiranje toka 601 podataka u koji su kodirani medijski podaci, i sadrži prekidač 600 režima konfigurisan da aktivira režim niske složenosti 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 sintaksni elementi 604 sa celobrojnim vrednostima koristeći funkciju mapiranja kojom se kontroliše kontrolni parametar, za mapiranje domena reči sekvence simbola u ko-domen sintaksnih elemenata 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 po prvoj brzini u slučaju da se aktivira režim visoke efikasnosti i da je kontrolni parametar konstantan bez obzira na tok podataka ili se menja u zavisnosti od toka podataka, ali drugom brzinom nižom od prve u slučaju aktiviranja režima niske složenosti,, kao što je ilustrovano strelicom 607. Na primer, kontrolni parametar može da varira u skladu sa prethodno desimbolizovanim simbolima.
[0211] Neka od gornjih izvođenja su koristila aspekt sa Sl. 12. Elementi sintakse coeff_abs_minus3 i MVD unutar sekvence 327 su, na primer, binarizovani u desimbolizatoru 314 u zavisnosti od režima izabranog kao što je naznačeno sa 407 i rekonstruktor 605 je koristio ove sintaksne elemente za rekonstrukciju. Očigledno, oba aspekta sa Sl. 11 i 12 se lako mogu kombinovati, ali aspekt sa slike 12 se takođe može kombinovati sa drugim okruženjima za kodiranje.
[0212] Treba videti, na primer, kodiranje razlike vektora kretanja prikazano gore. Desimbolizator 602 može biti konfigurisan tako da funkcija mapiranja koristi skraćeni unarni kod da izvrši mapiranje unutar prvog intervala domena elemenata sintakse sa celobrojnim vrednostima ispod granične vrednosti i kombinacije prefiksa u obliku skraćenog unarnog koda za graničnu vrednost i sufiks u obliku VLC kodne reči unutar drugog intervala domena sintaksnih elemenata sa celobrojnim vrednostima uključujući i iznad granične vrednosti, pri čemu dekoder može da sadrži entropijski dekoder 608 konfigurisan da izvede određeni broj prvih binova skraćenog unarnog koda iz toka podataka 601 koristeći entropijsko dekodiranje sa procenom promenljive verovatnoće i broj drugih binova VLC kodne reči korišćenjem bajpas režima konstantne jednake verovatnoće. U HE režimu, entropijsko kodiranje može biti složenije nego u LC kodiranju kao što je ilustrovano strelicom 609. To jest, prilagodljivost na kontekst i/ili prilagođavanje verovatnoće se može primeniti u HE režimu i potisnuti u LC režimu, ili se složenost može skalirati na drugi način, kao što je gore navedeno u pogledu različitih izvođenja.
[0213] Koder koji se uklapa u dekoder sa Sl. 11, za kodiranje medijskih podataka u tok podataka je prikazan na Sl.13. On može da sadrži ubacivač 500 konfigurisan da signalizira u okviru toka 501 podataka aktivaciju režima niske složenosti ili režima visoke efikasnosti, konstruktor 504 konfigurisan da unapred kodira medijske podatke 505 u niz 506 elemenata sintakse, simbolizator 507 konfigurisan da simbolizuje sekvencu 506 sintaksnih elemenata u sekvencu 508 simbola, više entropijskih enkodera 310 od kojih je svaki konfigurisan da konvertuje delimične sekvence simbola u kodne reči toka podataka, i selektor 502 konfigurisan da prosleđuje svaki simbol sekvence 508 simbola na izabrani jedan od mnoštva entropijskih kodera 310, pri čemu je selektor 502 konfigurisan da izvrši izbor u zavisnosti od aktiviranog režima niske složenosti i režima visoke efikasnosti kao što je ilustrovano strelicom 511. Mešač 510 može biti opciono obezbeđen za preplitanje kodiranih reči kodera 310.
[0214] Enkoder koji se uklapa u dekoder sa Sl. 12, za kodiranje medijskih podataka u tok podataka prikazan je na Sl. 14 kako sadrži ubacivač 700 konfigurisan da signalizira unutar toka 701 podataka aktivaciju režima niske složenosti ili režima visoke efikasnosti, konstruktor 704 konfigurisan da unapred kodira medijske podatke 705 u niz 706 sintaksnih elemenata koji se sastoji od elementa sintakse sa celobrojnim vrednostima, i simbolizator 707 konfigurisan da simbolizuje element sintakse sa celobrojnim vrednostima koristeći funkciju mapiranja kontrolisanu od strane kontrolnog parametra, za mapiranje domena sintaksnih elemenata sa celobrojnim vrednostima u ko-domen reči sekvence simbola, pri čemu je simbolizator 707 konfigurisan da izvrši simbolizaciju tako da kontrolni parametar varira u skladu sa tokom podataka prvom brzinom u slučaju aktiviranja režima visoke efikasnosti, a kontrolni parametar je konstantan bez obzira na tok podataka ili se menja u zavisnosti od toka podataka, ali drugom brzinom nižom od prve brzine u slučaju da se režim niske složenosti aktivira kao što je ilustrovano strelicom 708. Rezultat simbolizacije je kodiran u tok 701 podataka.
4
[0215] Opet, treba napomenuti da se izvođenje sa Sl. 14 lako može preneti na gore pomenuto binarno aritmetičko izvođenje kodiranja/dekodiranja koja se prilagođava kontekstu: selektor 509 i entropijski enkoderi 310 bi se kondenzovali u kontekstualno prilagodljivi binarni enkoder koji bi direktno izbacio tok 401 podataka i izabrao kontekst za bin koji se trenutno izvodi iz toka podataka. Ovo posebno važi za prilagodljivost na kontekst i/ili prilagodljivost verovatnoće. Obe funkcionalnosti/ prilagodljivosti mogu biti isključene ili dizajnirane opuštenije tokom režima niske složenosti.
[0216] U gornjem tekstu je ukratko napomenuto da se sposobnost prebacivanja režima koje je objašnjeno u vezi sa nekim od gornjih izvođenja može, u skladu sa alternativnim rešenjima, izostaviti. Da bi se ovo pojasnilo, upućuje se na Sl.16, koja rezimira gornji opis utoliko što se samo uklanjanjem mogućnosti prebacivanja režima razlikuje izvođenje na Sl. 16 od gornjih izvođenja. Štaviše, opis koji sledi će otkriti prednosti koje proizilaze iz inicijalizacije procena verovatnoće konteksta korišćenjem manje tačnih parametara za nagib i ofset u poređenju sa, na primer, H.264.
[0217] Konkretno, Sl. 16 prikazuje dekoder za dekodiranje videa iz toka 401 podataka u koje su elementi 327 sintakse kodirani korišćenjem binarizacije sintaksnih elemenata 327. Bitno je napomenuti da se u gornjem opisu svi detalji prikazani na Sl. 1-15 takođe mogu preneti na entitete prikazane na Sl.16, kao što su, na primer, što se tiče funkcionalnosti desimbolizatora 314, rekonstruktora 404 i entropijskog dekodera 409. Ipak, radi kompletnosti, neki od ovih detalja su ponovo prikazani u nastavku.
[0218] Dekoder sadrži entropijski dekoder 409 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, u zavisnosti od prethodno dekodiranih delova toka 401 podataka. Da budemo precizniji, kao što je gore opisano, entropijski dekoder 409 može biti konfigurisan da izvede određeni broj binova 326 binarizacije 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 izbora konteksta, njegova zavisnost od prethodno dekodiranih delova toka 401 podataka, može biti izvedena kao što je gore navedeno. Odnosno, entropijski dekoder može biti konfigurisan da izvrši izbor konteksta za bin koji trenutno treba da se izvede u zavisnosti od pozicije bina koji trenutno treba da se izvede u okviru binarizacije kojoj pripada bin koji trenutno treba da se izvede, tipa elementa sintakse sintaksnog elementa čija se celobrojna vrednost dobija debinarizacijom binarizacije kojoj pripada bin koji trenutno treba da se izvede, ili jednog ili više binova prethodno izvedenih iz toka 401 podataka ili celobrojne vrednosti elementa sintakse koji je prethodno debinarizovan. Na primer, izabrani 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 koeficijenta transformacije, razlike vektora kretanja, parametri režima kodiranja i slično.
[0219] Što se tiče ažuriranja stanja verovatnoće, entropijski dekoder 409 može biti konfigurisan da izvrši isto, za bin koji je trenutno izveden, prelaskom iz trenutnog stanja verovatnoće povezanog sa kontekstom izabranim za bin koji je trenutno izveden unutar 126 stanja verovatnoće u novo stanje verovatnoće među 126 stanja verovatnoće u zavisnosti od trenutno izvedenog bina. Kao što je gore opisano, entropijski dekoder 409 može, na primer, da pristupi unosu tabele koristeći trenutno stanje i vrednost bina koji je trenutno izveden sa pristupnim unosom tabele koji otkriva novo stanje verovatnoće. Pogledajmo gornje tabele Next_State_LPS i Next_State_MPS u odnosu na koje entropijski dekoder pored ostalih koraka 0 do 5 navedenih gore obavlja pretraživanje. U gornjem opisu, stanje verovatnoće je ponekad označavano kao pState_current [bin]. Kao što je takođe gore opisano, entropijski dekoder 409 može biti konfigurisan da binarno aritmetički dekodira bin koji se trenutno izvodi kvantizacijom trenutne vrednosti bita intervala verovatnoće (R) koji predstavlja trenutni interval verovatnoće da bi se dobio indeks intervala verovatnoće q_indeks i izvođenjem podele intervala indeksiranjem unosa tabele među unosima tabela (Rtab) korišćenjem indeksa intervala verovatnoće i indeksa stanja verovatnoće p_state u zavisnosti od zavisi od trenutnog stanja verovatnoće povezanog sa kontekstom izabranim za bin koji trenutno treba da se izvede, da bi se dobila podela trenutnog intervala verovatnoće u dva parcijalna intervala. Kao što je opisano, entropijski dekoder 409 može da koristi 8-bitnu reprezentaciju za trenutnu vrednost širine intervala verovatnoće R. Za kvantizovanje trenutne vrednosti širine verovatnoće, entropijski dekoder 409 može, na primer, da izvuče dva ili tri najznačajnija bita iz 8-bitnog predstavljanja.
[0220] Entropijski dekoder 409 tada može da izvrši izbor između dva delimična intervala na osnovu vrednosti stanja ofseta iz unutrašnjosti trenutnog intervala verovatnoće, da ažurira vrednost širine intervala verovatnoće i vrednost stanja ofseta i zaključi vrednost bina koji trenutno treba da se izvede, koristeći izabrani parcijalni interval i izvrši renormalizaciju ažurirane vrednosti širine 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 na osnovu vrednosti stanja ofseta V može uključiti poređenje između R i V, dok ažuriranje vrednosti širine intervala verovatnoće i vrednosti stanja ofseta može zavisiti od vrednosti bina koji se trenutno izvodi.
[0221] Da bi se nastavilo sa opisom Sl. 16, dekoder dalje opisuje desimbolizator 314 koji je konfigurisan da debinarizuje binarizacije elemenata 327 sintakse da bi dobio celobrojne vrednosti elemenata sintakse. Rekonstruktor 404, koji se takođe sastoji od dekodera sa Sl.16, zatim rekonstruiše video 405 na osnovu celobrojnih vrednosti elemenata sintakse koristeći parametar kvantizacije QP. Na primer, rekonstruktor 404 može, kao što je gore opisano, da radi na prediktivni način korišćenjem parametra kvantizacije da bi se podesila tačnost za predstavljanje reziduala predviđanja kao što su nivoi koeficijenta transformacije koji predstavljaju transformisanu verziju reziduala predviđanja. Entropijski dekoder 409 je, kao što je gore opisano, konfigurisan da razlikuje 126 stanja verovatnoće. To jest, pState_current [bin] u kombinaciji sa indikacijom valMPS, tj. indikacijom MBS-a između 0 i 1, odnosno među mogućim stanjima simbola, može da preuzme 126 različitih stanja. Entropijski dekoder 409 inicijalizuje stanja verovatnoće povezana sa različitim kontekstima, tj. pState_current za različite dostupne kontekste, prema linearnoj jednačini parametra kvantovanja, odnosno jednačini prema a · QP d. Treba podsetiti da pState_current zapravo samo ukazuje na verovatnoću LSB-a. Dakle, a · QP d otkriva oba, odnosno pState_current i vaIMPS, tj. indikaciju koje je od dva stanja MBS, a koje LBS. Dok a · QP d ukazuje na verovatnoću određenog simbola, tj.1 ili 0, ta činjenica da li je a · QP d iznad 63 ili ne, direktno ukazuje na to da li je vrednost MSB-a 0 ili 1. Entropijski dekoder 126 izvodi, za svaki od različitih konteksta, nagib a i ofset b linearne jednačine iz prvog i drugog 4-bitnog dela odgovarajuće 8-bitne inicijalizacione vrednosti, odnosno četiri MSB-a s jedne strane i četiri niža LSB-a. U tom smislu, entropijski dekoder 409 može biti konfigurisan da inicijalizuje stanja verovatnoće povezana sa različitim kontekstima kao počecima delova videa. Entropijski dekoder može, na primer, biti konfigurisan da pojedinačno odredi parametar kvantizacije za svaki deo videa. To jest, entropijski dekoder 409 može da izvede iz toka 401 podataka informacije o tome kako da se postavi parametar kvantizacije za svaki isečak. Zatim, koristeći nagib i ofset, procene verovatnoće se postavljaju na početku svakog isečka koristeći odgovarajući parametar kvantizacije odgovarajućeg isečka. „Na početku isečka“ može, na primer, da znači „pre dekodiranja prvog bina koji se entropijski dekodira korišćenjem bilo kog konteksta“. Konkretno, entropijski dekoder 409 može biti konfigurisan da inicijalizuje stanja verovatnoće povezanih sa različitim kontekstom na počecima delova videa čitanjem parametra kvantizacije QP za trenutni isečak iz toka 401 podataka i inicijalizacijom stanja verovatnoće povezanih sa različitim kontekstima prema linearnoj jednačini parametra kvantizacije za trenutni isečak, pri čemu entropijski dekoder može, za svaki od isečka, da izvede nagib i ofset linearne jednačine iz prvog i drugog 4-bitnog dela istoe odgovarajuće 8-bitne vrednosti inicijalizacije. To jest, dok parametar kvantizacije QP varira između delova videa, parovi nagiba i pomaka ne variraju.
[0222] Rekonstruktor 404 može, kao što je upravo opisano, da radi na prediktivni način. Shodno tome, rekonstruktor 404 može, u rekonstrukciji videa 405 na osnovu celobrojnih vrednosti elemenata sintakse 327, da dekvantuje nivoe koeficijenta transformacije koje čine elementi sintakse koristeći parametar kvantizacije QP, da izvrši retransformaciju na dekvantizovane nivoe koeficijenta transformacije da bi dobio ostatak predviđanja, izvrši prostorno i/ili vremensko predviđanje da bi se dobio signal predviđanja i kombinuje rezidual predviđanja i signal predviđanja da bi se rekonstruisao video 405.
[0223] Da predstavimo konkretan primer, entropijski dekoder 409 može biti konfigurisan da izvede, za svaki od različitih konteksta, nagib i ofset iz prvog i drugog 4-bitnog dela nezavisno jedan od drugog, kao što je, na primer, pomoću lukap tabele gorekao što je gore opisano ili, alternativno, korišćenjem zasebnih aritmetičkih operacija kao što su linearne operacije. To jest, da bi se prešao jaz između 4 bita dva 4-bitna dela 8-bitnih vrednosti inicijalizacije s jedne strane, i 126 različitih vrednosti stanja verovatnoće s druge strane, entropijski dekoder 409 može pojedinačno da obradi oba 4-bitna dela u linearne jednačine. Na primer, MSB-ovi vrednosti q inicijalizacije od 8 bita,, pretvaraju se u nagib izračunavanjem nagiba = m · p n, a četiri LSB-a 8-bitne vrednosti inicijalizacije, q, se koriste za izračunavanje ofseta po ofset = s · q t. m, n, t i s su odgovarajuće odabrane konstante. Čisto radi kompletnosti, Sl. 17 prikazuje enkoder koji se uklapa u dekoder sa Sl. 16, pri čemu enkoder sa Sl. 17 blisko korespondira sa konstrukcijom na primer enkodera sa slike 20 i drugim izvođenjima za enkoder na sličan način kao što je dekoder sa Sl. 16 odgovarao dekoderu sa Sl. 11, tj. pored toga što je izostavljena mogućnost promene režima i implementacija entropijskog enkodera 513 u opštijim terminima kao što je uključivanjem ili koncepta PIPE ili drugog koncepta kao što je gore navedeni koncept CABAC. Osim toga, ceo gore dat opis u odnosu na Sl.16 se podjednako prenosi na Sl.17.
[0224] Iako su neki aspekti opisani u kontekstu uređaja, jasno je da ovi aspekti takođe predstavljaju opis odgovarajuće metode, gde blok ili uređaj odgovara koraku metode ili karakteristikama koraka metode. Analogno tome, aspekti opisani u kontekstu koraka metode takođe predstavljaju opis odgovarajućeg bloka ili stavke ili karakteristike odgovarajućeg uređaja. Neki ili svi koraci metode mogu biti izvršeni od strane (ili korišćenjem) hardverskog uređaja, kao na primer, mikroprocesora, programabilnog računara ili elektronskog kola. U nekim izvođenjima, neki jedan ili više najvažnijih koraka metode mogu biti izvedeni pomoću takvog uređaja.
[0225] 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 medij za bežični prenos ili žičani prenosni medijum kao što je Internet.
[0226] U zavisnosti od određenih zahteva implementacije, izvođenja pronalaska mogu biti implementirana u hardveru ili softveru. Implementacija se može izvesti pomoću digitalnog medijuma za skladištenje, na primer flopi diska, DVD-a, Blue-Ray-a, CD-a, ROM-a, PROM-a, EPROM-a, EEPROM-a ili FLASH memorije, sa elektronski čitljivim kontrolnim signalima sačuvanim na njemu, koji sarađuju (ili su sposobni da sarađuju) sa programabilnim računarskim sistemom tako da se vrši odgovarajući metod. Stoga, digitalni medij za skladištenje može biti čitljiv računarom.
[0227] Neka izvođenja prema ovom 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 ovde opisanih metoda.
[0228] Generalno, izvođenja iz ovog pronalaska mogu se implementirati kao računarski programski proizvod sa programskim kodom, pri čemu je programski kod operativan za izvođenje jednog od metoda kada se računarski programski proizvod pokreće na računaru. Programski kod može, na primer, biti sačuvan na mašinski čitljivom nosaču.
[0229] Druga izvođenja obuhvataju kompjuterski program za izvođenje jednog od ovde opisanih metoda, uskladišten na mašinski čitljivom nosaču.
[0230] Drugim rečima, izvođenje inventivnog metoda je, dakle, kompjuterski program koji ima programski kod za izvođenje jednog od ovde opisanih metoda, kada se računarski program pokreće na računaru.
[0231] Jedno dalje izvođenje inventivnih metoda je, prema tome, nosač podataka (ili digitalni medij za skladištenje, ili računarski čitljiv medijum) koji sadrži, snimljen na njemu, kompjuterski program za izvođenje jednog od ovde opisanih metoda. Nosač podataka, digitalni medij za skladištenje ili snimljeni medij su obično čitljivi i/ili nepromenjivi.
[0232] Jedno dalje izvođenje inventivnog metoda je, dakle, tok podataka ili niz signala koji predstavljaju kompjuterski program za izvođenje jednog od ovde opisanih metoda. Tok podataka ili sekvenca signala može se, na primer, konfigurisati da se prenosi preko veze za prenos podataka, na primer preko Interneta.
[0233] Jedno dalje izvođenje obuhvata sredstvo za obradu, na primer računar, ili programibilni logički uređaj, konfigurisan ili prilagođen da izvrši jedan od ovde opisanih metoda.
[0234] Jedno dalje izvođenje obuhvata računar koji ima instaliran kompjuterski program za izvođenje jednog od ovde opisanih metoda.
[0235] Jedno dalje izvođenje prema pronalasku obuhvata uređaj ili sistem konfigurisan da prenosi (na primer, elektronski ili optički) kompjuterski program za izvođenje jednog od ovde opisanih metoda na prijemnik. Prijemnik može, na primer, biti računar, mobilni uređaj, memorijski uređaj ili slično. Uređaj ili sistem mogu, na primer, da sadrže server datoteka za prenos kompjuterskog programa na prijemnik.
[0236] U nekim izvođenjima, programibilni logički uređaj (na primer polje gejta koji se može programirati - FPGA) može se koristiti za obavljanje nekih ili svih funkcionalnosti metoda opisanih ovde. U nekim izvođenjima, polje programabilnih gejtova (FPGA) može da sarađuje sa mikroprocesorom da bi izvršio jedan od ovde opisanih metoda. Generalno, metode se poželjno izvode bilo kojim hardverskim aparatom.
[0237] Gore opisana izvođenja su samo ilustrativna kao principi ovog pronalaska. Podrazumeva se da će modifikacije i varijacije uređaja i detalji koji su ovde opisani biti očigledni drugim stručnjacima u ovoj oblasti. Stoga je namera da se ograniči samo obimom predstojećih patentnih zahteva, a ne specifičnim detaljima ovde predstavljenim putem opisa i objašnjenja izvođenja.

Claims (19)

PATENTNI ZAHTEVI
1. Dekoder za dekodiranje videa iz toka (401) podataka u koji su kodirani elementi sintakse korišćenjem binarizacije sintaksnih elemenata (327), koji sadrži
entropijski dekoder (409) konfigurisan da izvede određeni broj binova (326) binarizacije iz toka (401) podataka koristeći CABAC biranjem konteksta između različitih konteksta i ažuriranjem stanja verovatnoće povezanih sa tim različitim kontekstima, u zavisnosti od prethodno dekodiranih delova toka (401) podataka; desimbolizator (314) konfigurisan da debinarizuje binarizacije elemenata (327) sintakse da dobije celobrojne vrednosti elemenata sintakse;
rekonstruktor (404) konfigurisan da rekonstruiše video na osnovu celobrojnih vrednosti elemenata sintakse koristeći parametar kvantizacije,
pri čemu je entropijski dekoder (409) konfigurisan da razlikuje između 126 stanja verovatnoće i da inicijalizuje stanja verovatnoće povezanih sa različitim kontekstima u skladu sa linearnom jednačinom parametra kvantizacije, pri čemu je entropijski dekoder konfigurisan da, za svaki od različitih konteksta, izvede nagib i ofset linearne jednačine iz prvog i drugog četvorobitnog dela odgovarajuće 8-bitne inicijalizacione vrednosti,
pri čemu je entropijski dekoder konfigurisan da obezbedi različite grupe konteksta za različite tipove elemenata sintakse, uključujući nivoe koeficijenata transformacije, razlike vektora kretanja i parametre režima kodiranja, i pri čemu desimbolizator koristi prvi bin koji specificira da li je apsolutna razlika vektora kretanja veća od nule, drugi bin koji specificira da li je apsolutna razlika vektora kretanja veća od jedan, i Exp-Golomb-ov kod za preostalu vrednost apsolutne razlike vektora kretanja, pri čemu je red Exp-Golomb-ovog koda jednak 1, i pri čemu je entropijski dekoder konfigurisan da koristi dva modela fiksnog konteksta za prvi i drugi bin razlika vektora kretanja na način podeljeno između horizontalnih i vertikalnih komponenti apsolutnih razlika vektora kretanja.
2. Dekoder prema zahtevu 1, pri čemu je entropijski dekoder (409) konfigurisan da izvede određeni broj binova (326) binarizacije iz toka (401) podataka korišćenjem binarnog PIPE dekodiranja.
3. Dekoder prema zahtevu 1 ili 2, pri čemu je entropijski dekoder (409) konfigurisan da izvrši izbor konteksta za bin koji se trenutno izvodi u zavisnosti od jednog ili više od
pozicije bina koji trenutno treba da se izvede u okviru binarizacije kojoj pripada bin koji trenutno treba da se izvede,
tipa elementa sintakse sintaksnog elementa čija se celobrojna vrednost dobija debinarizacijom binarizacije kojoj pripada bin koji trenutno treba da se izvede, i jednog ili više binova prethodno izvedenih iz toka (401) podataka, ili celobrojne vrednost elementa sintakse koji je prethodno debinarizovan.
4. Dekoder prema bilo kom od zahteva od 1 do 3, pri čemu je entropijski dekoder (409) konfigurisan da izvrši ažuriranje stanja verovatnoće tako što, za trenutno izvedeni bin, prelaskom iz trenutnog stanja verovatnoće povezanog sa kontekstom izabranim za bin koji je trenutno izveden unutar 126 stanja verovatnoće, u novo stanje verovatnoće među 126 stanja verovatnoće u zavisnosti od trenutno izvedenog bina.
5. Dekoder prema bilo kom od zahteva 1 do 4, pri čemu je entropijski dekoder (409) konfigurisan da binarno aritmetički dekodira bin koji trenutno treba da se izvede kvantizacijom trenutne vrednosti širine intervala verovatnoće koji predstavlja trenutni interval verovatnoće da bi se dobio indeks intervala verovatnoće i izvođenje podele intervala indeksiranjem unosa tabele među unosima tabela korišćenjem indeksa intervala verovatnoće i indeksa stanja verovatnoće u zavisnosti od trenutnog stanja verovatnoće povezanog sa kontekstom izabranim za bin koji trenutno treba da se izvede, da bi se dobila podela intervala trenutne verovatnoće u dva parcijalna intervala.
6. Dekoder prema zahtevu 5, pri čemu je entropijski dekoder (409) konfigurisan da koristi 8-bitnu reprezentaciju za trenutnu vrednost širine intervala verovatnoće i da izvuče 2 najznačajnija bita 8-bitne reprezentacije u kvantizovanju trenutne vrednosti širine intervala verovatnoće.
7. Dekoder prema zahtevu 5 ili 6, pri čemu je entropijski dekoder (409) konfigurisan da izabere između dva parcijalna intervala na osnovu vrednosti stanja ofseta iz unutrašnjosti trenutnog intervala verovatnoće, ažurira vrednost širine intervala verovatnoće i vrednost stanja ofseta, i zaključi vrednost bina koji trenutno treba da se izvede, koristeći izabrani parcijalni interval i izvrši renormalizaciju ažurirane vrednosti širine intervala verovatnoće i vrednosti stanja ofseta uključujući nastavak čitanja bitova iz toka (401) podataka.
8. Dekoder prema bilo kom od zahteva od 1 do 7, pri čemu je entropijski dekoder (409) konfigurisan da inicijalizuje stanja verovatnoće povezanih sa različitim kontekstima na počecima isečaka videa čitanjem parametra kvantizacije za trenutni isečak iz toka (401) podataka, i inicijalizovanjem stanja verovatnoće povezanih sa različitim kontekstima prema linearnoj jednačini parametra kvantizacije za trenutni isečak, pri čemu je entropijski dekoder (409) konfigurisan da, za svaki od isečaka, izvede nagib i pomak linearne jednačine iz prvog i drugog četvorobitnog dela iste odgovarajuće 8-bitne vrednosti inicijalizacije.
9. Dekoder prema bilo kom od zahteva 1 do 8, pri čemu je rekonstruktor (404) konfigurisan da, u rekonstrukciji videa (405) na osnovu celobrojnih vrednosti elemenata (327) sintakse, dekvantizuje nivoe koeficijenta transformacije koje čine elementi sintakse koristeći parametar kvantizacije, koji vrši ponovnu transformaciju na nivoe dekvantizovanog koeficijenta transformacije kako bi se dobio ostatak predviđanja, vrši prostorno i/ili vremensko predviđanje kako bi se dobio signal predviđanja i kombinuje ostatak predviđanja i signal predviđanja tako da rekonstruiše video (405).
10. Dekoder prema bilo kom od zahteva 1 do 9, pri čemu je entropijski dekoder (409) konfigurisan da izvede, za svaki od različitih konteksta, nagib i ofset linearne jednačine iz prvog i drugog četvorobitnog dela odgovarajuće 8-bitne vrednosti inicijalizacije nezavisno jedan od drugog i/ili pomoću lukap tabele ili korišćenjem aritmetičke operacije.
11. Dekoder prema bilo kom od zahteva od 1 do 10, pri čemu je entropijski dekoder konfigurisan da izvede, za svaki od različitih konteksta, nagib i ofset linearne jednačine množenjem i pomeranjem prva četiri bita za prvi par parametara, a ofset množenjem i pomeranjem drugog četvorobitnog dela za drugi par parametara.
12. Dekoder prema bilo kom od zahteva 1 do 11, pri čemu je tok podataka kodiran u mapu dubine.
1
13. Koder za kodiranje videa u tok podataka kodiranjem elemenata sintakse u tok podataka korišćenjem binarizacije elemenata sintakse, koji sadrži
konstruktor konfigurisan da predstavlja video postavljanjem celobrojnih vrednosti elemenata sintakse u zavisnosti od parametra kvantizacije,
simbolizator konfigurisan da binarizuje celobrojne vrednosti elemenata sintakse da bi se dobile binarizacije elemenata sintakse;
entropijski enkoder konfigurisan da kodira određeni broj binova binarizacija u tok podataka koristeći CABAC biranjem konteksta između različitih konteksta i ažuriranjem stanja verovatnoće povezanih sa različitim kontekstima, u zavisnosti od prethodno kodiranih delova toka podataka;
pri čemu je entropijski enkoder konfigurisan da razlikuje 126 stanja verovatnoće i da inicijalizuje stanja verovatnoće povezanih sa različitim kontekstima u skladu sa linearnom jednačinom parametra kvantizacije, pri čemu je entropijski enkoder konfigurisan da, za svaki od različitih konteksta, izvede nagib i ofset linearne jednačine iz prvog i drugog četvorobitnog dela odgovarajuće 8-bitne vrednosti inicijalizacije,
pri čemu je entropijski enkoder konfigurisan da obezbedi različite grupe konteksta za različite tipove sintaksnih elemenata uključujući nivoe koeficijenata transformacije, razlike vektora kretanja i parametre režima kodiranja, i pri čemu simbolizator koristi prvi bin koji specificira da li je apsolutna razlika vektora kretanja veća od nule, drugi bin koji specificira da li je apsolutna razlika vektora kretanja veća od jedan, i Exp-Golomb-ov kod za preostalu vrednost apsolutne razlike vektora kretanja, pri čemu je red Exp-Golomb-ovog koda jednak 1, i pri čemu je entropijski enkoder konfigurisan da koristi dva modela fiksnog konteksta za prvi i drugi bin razlika vektora kretanja na način podeljeno između horizontalnih i vertikalnih komponenti apsolutnih razlika vektora kretanja.
14. Enkoder prema zahtevu 13, pri čemu je tok podataka kodiran u mapu dubine.
15. Metoda za dekodiranje videa iz toka podataka u koji su elementi sintakse kodirani korišćenjem binarizacije elemenata sintakse, koji obuhvata
izvođenje određenog broja binova binarizacija iz toka podataka korišćenjem CABAC odabirom konteksta između različitih konteksta i ažuriranjem stanja verovatnoće povezanih sa različitim kontekstima, u zavisnosti od prethodno dekodiranih delova toka podataka;
debinarizovanje binarizacija elemenata sintakse da bi se dobile celobrojne vrednosti elemenata sintakse;
rekonstruisanje videa na osnovu celobrojnih vrednosti elemenata sintakse koristeći parametar kvantizacije,
pri čemu izvođenje određenog broja binova binarizacija razlikuje 126 stanja verovatnoće i metod obuhvata inicijalizaciju stanja verovatnoće povezanih sa različitim kontekstima u skladu sa linearnom jednačinom parametra kvantizacije, i, za svaki od različitih konteksta, izvođenje nagiba i ofseta linearne jednačine iz prvog i drugog četvorobitnog dela odgovarajuće 8-bitne vrednosti inicijalizacije,
pri čemu izvođenje obezbeđuje različite grupe konteksta za različite tipove elemenata sintakse, uključujući nivoe koeficijenata transformacije, razlike vektora kretanja i parametre režima kodiranja, i pri čemu debinarizacija koristi prvi bin koji specificira
2
da li je apsolutna razlika vektora kretanja veća od nule, drugi bin koji specificira da li je apsolutna razlika vektora kretanja veća od jedan, i Exp-Golomb-ov kod za preostalu vrednost apsolutne razlike vektora kretanja, pri čemu je red Exp-Golomb-ovog koda jednak 1, i pri čemu izvođenje koristi dva fiksna modela konteksta za prvi i drugi bin razlike vektora kretanja na način podeljeno između horizontalnih i vertikalnih komponenti apsolutnih razlika vektora kretanja.
16. Metoda za kodiranje videa u tok podataka kodiranjem elemenata sintakse u tok podataka korišćenjem binarizacija elemenata sintakse, koji obuhvata
predstavljanje videa postavljanjem celobrojnih vrednosti elemenata sintakse u zavisnosti od parametra kvantizacije,
binarizovanje celobrojnih vrednosti elemenata sintakse da bi se dobile binarizacije elemenata sintakse;
kodiranje određenog broja binova binarizacija u tok podataka korišćenjem CABAC odabirom konteksta između različitih konteksta i ažuriranjem stanja verovatnoće povezanih sa različitim kontekstima, u zavisnosti od prethodno kodiranih delova toka podataka;
pri čemu predstavljanje videa razlikuje 126 stanja verovatnoće i metod dalje obuhvata inicijalizaciju stanja verovatnoće povezanih sa različitim kontekstima u skladu sa linearnom jednačinom parametra kvantizacije, i, za svaki od različitih konteksta, izvođenje nagiba i ofseta linearne jednačine iz prvog i drugog četvorobitnog dela odgovarajuće 8-bitne vrednosti inicijalizacije,
pri čemu kodiranje obezbeđuje različite grupe konteksta za različite tipove elemenata sintakse, uključujući nivoe koeficijenata transformacije, razlike vektora kretanja i parametre režima kodiranja, i pri čemu binarizacija koristi prvi bin koji specificira da li je apsolutna razlika vektora kretanja veća od nule, drugi bin koji specificira da li je apsolutna razlika vektora kretanja veća od jedan, i Exp- Golomb-ov kod za preostalu vrednost apsolutne razlike vektora kretanja, pri čemu je red Exp-Golomb-ovog koda jednak 1, i pri čemu kodiranje koristi dva fiksna modela konteksta za prvi i drugi bin razlike vektora kretanja na način podeljeno između horizontalnih i vertikalnih komponenti apsolutnih razlika vektora kretanja.
17. Tok podataka koji ima video kodiran u sebi metodom prema zahtevu 16.
18. Tok podataka prema zahtevu 17, pri čemu je tok podataka kodiran u mapu dubine.
19. Računarski program koji ima programski kod za izvođenje, kada se izvodi na računaru, metod prema bilo kom od zahteva 15 do 16.
RS20220220A 2011-06-16 2012-06-18 Inicijalizacija konteksta u entropijskom kodiranju RS63053B1 (sr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161497794P 2011-06-16 2011-06-16
US201161508506P 2011-07-15 2011-07-15
EP18152613.8A EP3343781B1 (en) 2011-06-16 2012-06-18 Context initialization in entropy coding

Publications (1)

Publication Number Publication Date
RS63053B1 true RS63053B1 (sr) 2022-04-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 After (3)

Application Number Title Priority Date Filing Date
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

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2827264B2 (ja) 1989-03-30 1998-11-25 横河電機株式会社 光を用いた物理量測定装置
US6885864B2 (en) 1992-03-06 2005-04-26 Aircell, Inc. Virtual private network for cellular communications
US5717394A (en) 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5381145A (en) 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
JPH06334993A (ja) * 1993-03-26 1994-12-02 Sony Corp 動画像符号化又は復号化装置、並びに動きベクトルの可変長符号化及び復号化方法
US5381148A (en) 1993-07-12 1995-01-10 Analog Devices, Inc. Method and apparatus for calibrating a gain control circuit
KR970003102B1 (ko) * 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
JP3560393B2 (ja) 1995-07-06 2004-09-02 株式会社日鉱マテリアルズ アルミニウム合金スパッタリングターゲットの製造方法
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US12581082B2 (en) Context initialization in entropy coding
US11516474B2 (en) Context initialization in entropy coding
AU2024201207A1 (en) Context initialization in entropy coding
HK40077443A (en) Context initialization in entropy coding