NO328295B1 - VLC-fremgangsmate og -innretning - Google Patents

VLC-fremgangsmate og -innretning Download PDF

Info

Publication number
NO328295B1
NO328295B1 NO20082612A NO20082612A NO328295B1 NO 328295 B1 NO328295 B1 NO 328295B1 NO 20082612 A NO20082612 A NO 20082612A NO 20082612 A NO20082612 A NO 20082612A NO 328295 B1 NO328295 B1 NO 328295B1
Authority
NO
Norway
Prior art keywords
event
vlc
video data
block
code
Prior art date
Application number
NO20082612A
Other languages
English (en)
Other versions
NO20082612L (no
Inventor
Gisle Bjontegaard
Arild Fuldseth
Original Assignee
Tandberg Telecom As
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tandberg Telecom As filed Critical Tandberg Telecom As
Priority to NO20082612A priority Critical patent/NO328295B1/no
Priority to CN2008801209676A priority patent/CN101904172B/zh
Priority to JP2010539342A priority patent/JP2011507450A/ja
Priority to PCT/NO2008/000464 priority patent/WO2009082239A1/en
Priority to US12/339,817 priority patent/US8306347B2/en
Priority to EP08865415A priority patent/EP2235952A4/en
Publication of NO20082612L publication Critical patent/NO20082612L/no
Publication of NO328295B1 publication Critical patent/NO328295B1/no

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/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/93Run-length coding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems

Abstract

Den foreliggende oppfinnelsen tilveiebringer en fremgangsmåte og en innretning for tapsfri koding av eventtabeller med dynamisk overensstemmende VLC-tabeller. Det mest sannsynlige event skal tilordnes den korteste koden, og de respektive eventer skal ha økende kodelengde idet den assosierte sannsynlighet for forekomst avtar. Den foreliggende oppfinnelsen tar i betraktning at sannsynlighetsfordelingen for denne tabellen ikke behøver være stabil gjennom de ulike deler av en videosekvens. Hver gang et event har forekommet, flyttes dette eventet en posisjon opp i tabellen. Den foreliggende oppfinnelsen resulterer i mer effektiv koding av digital komprimert video ved dynamisk å omordne eventtabeller for å oppnå en bedre overensstemmelse mellom eventsannsynligheter og VLCkodeord. Dette er særlig nyttig ved koding av video ved lys- og fargebetingelser som temporært eller konstant skiller seg fra de forventede betingelser som statiske VLC-er avledes fra.

Description

Område for oppfinnelsen
Oppfinnelsen vedrører variabellengdekoding (eng.: Variable Length Coding, VLC) av videodata i videokomprimeringssystemer.
Bakgrunn for oppfinnelsen
Transmisjon av bevegelige bilder i sanntid anvendes i flere applikasjoner som for eksempel videokonferanser, nettmøter, tv-kringkasting og videotelefoni.
Representasjon av bevegelige bilder krever imidlertid betydelig informasjon, idet digital video typisk beskrives ved å representere hver piksel i et bilde med 8 bits (1 byte). Slike ukomprimerte videodata resulterer i store bitvolumer, og kan ikke overføres over konvensjonelle kommunikasjonsnettverk og transmisjonslinjer i sanntid på grunn av begrenset båndbredde.
Således krever muliggjøring av sanntidsvideotransmisjon en stor grad av datakompresjon. Datakompresjon kan imidlertid gå på bekostning av bildekvalitet. Derfor har det blitt gjort stor innsats i å utvikle komprimeringsteknikker som tillater sanntids transmisjon av høykvalitetsvideo over båndbreddebegrensede dataforbindelser.
I videokomprimeringssystemer er hovedmålet å representere videoinformasjonen med så liten kapasitet som mulig. Kapasitet er definert ved bits, enten som en konstant verdi eller som bits per tidssenhet. I begge tilfeller er hovedmålet å redusere antallet bits.
Mange videokomprimeringsstandarder har blitt utviklet i løpet av de siste årene. Mange av disse fremgangsmåtene er standardiserte gjennom ISO (the International Standards Organization) eller ITO (the International Telecommunications Union). I tillegg er et antall andre proprietære fremgangsmåter blitt utviklet. De viktigste standardiseringsfremgangsmåtene er: ITU: H.261, H.262, H.263, H.264
ISO: MPEG1, MPEG2, MPEG4/AVC
Det første trinnet i kodingsprosessen, ifølge disse standardene, er å inndele bildet i kvadratiske pikselblokker, for eksempel 16x16 eller 8x8 piksler. Dette gjøres for luminansinformasjon, så vel som for krominansinformasjon.
Den følgende prediksjonsprosessen reduserer betraktelig mengden av bits som er nødvendig for hvert bilde i en videosekvens som skal overføres. Den tar fordel av likheten av deler i sekvensen med andre deler av sekvensen, og produserer en prediksjon for pikslene i blokken. Dette kan være basert på piksler i et allerede kodet/dekodet bilde (kalt interprediksjon) eller på allerede kodede/dekodede piksler i det samme bildet (kalt intraprediksjon). Reduksjonen er til det vesentligste basert på vektorer som representerer bevegelser.
Siden prediksjonsdelen er kjent for både koderen og dekoderen, behøver bare differansen overføres. Denne differansen krever typisk mye mindre kapasitet for sin representasjon. Differansen mellom pikslene som skal kodes og de predikterte piksler, omtales ofte som en residual.
Residualen representert som en blokk med data (for eksempel 4x4 piksler) inneholder fortsatt intern korrelasjon. En velkjent fremgangsmåte for å dra fordel av dette, er å utføre en todimensjonal blokktransform. I H.263 anvendes en 8x8 diskret cosinustransform (DCT), mens H.264 anvender en NxN (der N kan være 4 eller 8) heltallstype transform. Denne transformerer NxN piksler til NxN transformkoeffisienter, og disse kan vanligvis representeres med færre bits enn pikselrepresentasjonen. Transformasjon av en NxN-gruppe av piksler med intern korrelasjon vil sannsynligvis resultere i en 4x4 blokk av transformkoeffisienter med mye færre ikke-null-verdier enn den originale 4x4 pikselblokken.
Direkte representasjon av transformkoeffisientene er likevel for kostbar i mange applikasjoner. En kvantiseringsprosess utføres for en ytterligere reduksjon av datarepresentasjonen. Således undergår transformkoeffisientene kvantisering. En enkel versjon av kvantisering er å dele parameterverdiene med et tall - hvilket resulterer i et mindre antall som kan representeres med færre bits. Dette er det viktigste verktøy for å kontrollere bitproduksjonen og den rekonstruerte bildekvaliteten. Det skal nevnes at denne kvantiseringsprosessen har som resultat at den rekonstruerte videosekvensen er noe forskjellig fra den ukomprimerte sekvensen. Dette fenomenet omtales som tapsbeheftet koding (engelsk: "lossy coding"). Dette betyr at de rekonstruerte bildene typisk har en lavere kvalitet enn de originale bildene. Utgangen fra kvantiseringsprosessen er heltall, som ikke representerer de originale transformkoeffisientene korrekt. Disse heltallene, sammen med heltall som representerer sideinformasjonen, kodes på tapsfri måte og transmitteres til dekoderen.
Endelig utføres en såkalt skanning av de todimensjonale
transformkoefifsientdataene til et endimensjonalt sett av data, og det endimensjonale settet transformeres videre i samsvar med et entropikodingsskjema. Entropikoding medfører tapsfri representasjon av de kvantiserte transformkoeffisientene.
De ovenstående trinnene er listet i en naturlig rekkefølge for koderen. Dekoderen vil til en viss grad utføre operasjonene i motsatt rekkefølge og gjøre "inverse" operasjoner slik som invers transform i stedet for transform og dekvantisering i stedet for kvantisering.
Tapsfri koding anvendes konvensjonelt for entropikoding av kvantiserte transformkoeffisienter, og for å kode sideinformasjon som bevegelses vektor, kodingsmodus og Coded Block Pattern (CBP). Typisk defineres et sett av eventer i en eventtabell. Videre defineres en variabellengdekodings- (VLC-) kodetabell, og hvert event kobles til en kode i VLC-tabellen. Nedenfor er noen eksempler på eventtabeller som skal kodes.
Bevegelsesvektorkomponenter er typisk horisontale eller vertikale komponenter. Anta nå at bare én slik komponent betraktes, og verdien er et heltall som kan være positivt eller negativt. Den mest sannsynlige verdien er 0. Deretter følger ±1, ±2, ±3 osv. med avtagende sannsynlighet. En god kombinasjon av vektorverdier og kodeverdier viser seg å være:
For en optimal løsning bør det mest sannsynlige event ha den korteste kode. Mer spesifikt bør kodelengden i bits være lik entropien av eventet, eller:
Code_length = -log2(probability_of_event).
Derfor er VLC-en ovenfor optimal dersom sannsynlighetene for ..-3, -2, -1, 0, 1, 2, 3,.. er 1/32, 1/32, 1/8, 1/2, 1/8, 1/32, 1/32 osv.
En annen type sideinformasjon som typisk kodes med VLC-tabeller, er CBP. Det viser seg å være fordelaktig å signalere hvilke av 4 8x8 luminansblokker og 2 sammenstilte (eng.: collocated) 8x8 krominansblokker i en makroblokk som har ikke-null-koeffisienter eller ikke, ved VLC. Derfor defineres en eventtabell med de 2<6> = 64 mulige eventer. En korresponderende VLC-tabell er definert som motsvarer sannsynlighetene for de 64 eventene.
De kvantiserte transformkoeffisientene kodes også ved tapsfri VLC. Det er mange måter å kode transformkoeffisientene effektivt på. Dette kan lede til ulike evetnttabeller - og assosierte VLC-er. Konvensjonelt uttrykkes de kvantifiserte transformkoeffisientene i en blokk ved antallet ikke-null-transformkoeffisienter i en blokk, posisjonen for de siste ikke-null- transformkoeffisientene i en blokk, og den virkelige størrelsen av transformkoeffisienten. Kombinasjoner av denne informasjonen danner så eventer definert i VLC-tabeller. For eksempel kan et kombinert event kodes ved å angi både posisjonen for den siste ikke-null og hvorvidt størrelsen av den siste koeffisienten =1 eller >1. Andre kombinasjoner kan også anvendes, men det grunnleggende er fortsatt å velge kombinasjoner og korresponderende VLC-tabeller som minimaliserer antallet bits nødvendig basert på sannsynligheten for eventer.
Dette vil resultere i et lavt bitforbruk, så lenge dataene som skal kodes passer rimelig bra med den underliggende statistikk. I det motsatte tilfellet, når svært utypiske data skal kodes, kan bruken av bits bli for høy. I situasjonen der dataene som skal kodes, unnlater å passe med den "normale" statistikk, vil forekomster som er representert med et stort antall bits, bli hyppigere. Dette kan være situasjonen ved raske og vedvarende lysendringer i omgivelsene der videobildet er innhentet. Dette vil redusere kvaliteten på det kodede/dekodede bildet, idet kodingsprosessen automatisk vil innstille kvantiseringsintervallene for å overholde den hyppige forekomsten av lange kodeord.
US-2006/110059 vedrører en fremgangsmåte for å kode blokkparametere anvendt i rammebaserte og objektbaserte videkodingsformater. Blokkparameterne koder bildeblokker til makroblokker, og komprimeres ved å utnytte korrelasjonen mellom krominans- og luminansblokker i hver makroblokk.
Sammenfatning av oppfinnelsen
Det er en hensikt ved den foreliggende oppfinnelsen å tilveiebringe en fremgangsmåte og en innretning for å representere videodata relatert til en makroblokk for et videobilde i en kodingsprosedyre.
En annen hensikt er å tilveiebringe en fremgangsåte og en innretning for å tolke koder relatert til en makroblokk i et videobilde i en dekodingsprosedyre.
Fremgangsmåten og innretningen er fremsatt i de vedfølgende krav.
Kort beskrivelse av tegningene
For å gjøre oppfinnelsen enklere å forstå, vil den etterfølgende diskusjonen referere til de medfølgende tegninger. Figur 1 er et blokkdiagram som viser de ulike prosesseringstrinn i en konvensjonell kodingsprosedyre, Figur 2 er et skjematisk flytskjema som illustrerer prinsipper ved en fremgangsmåte for å representere videodata, Figur 3 er et skjematisk flytskjema som illustrerer prinsipper ved en fremgangsmåte for å tolke koder relatert til en makroblokk i et videobilde, Figur 4 er et skjematisk blokkdiagram som illustrerer prinsipper ved en kodingsinnretning, og Figur 5 er et skjematisk blokkdiagram som illustrerer prinsipper ved en dekodingsinnretning.
Detaljert beskrivelse av den foreliggende oppfinnelsen
Den foreliggende oppfinnelsen tilveiebringer tapsfri koding av eventtabeller med dynamisk overensstemmende VLC-tabeller. Som beskrevet i det ovenstående, bør det mest sannsynlige eventet tilordnes med kortest kode, og de respektive eventer bør ha økende kodelengde etter hvert som den assosierte sannsynlighet for forekomst avtar. Den foreliggende oppfinnelsen tar i betraktning at sannsynlighetsfordelingen for eventtabellen ikke behøver være stabil idet man beveger seg gjennom ulike deler av en videosekvens. Hver gang et event har opptrådt, flyttes dette eventet en posisjon opp i eventtabellen, det vil si at det nettopp forekommende eventet endrer posisjon med eventet assosiert med posisjonen rett ovenfor. Imidlertid forblir kodene tilordnet hver posisjon uendret, det er bare assosiasjonene av eventene med tabellposisjoner som rearrangeres.
Et event som forekommer mer ofte enn hva den originale eventtabellen angir vil så gradvis bli tilordnet kortere bitkoder. Derfor vil det tilveiebringes en effektiv koding selv i tilfeller av raskt endrede farge eller lys, eller andre sjeldent forekommende betingelser.
Figur 2 er et skjematisk flytskjema som illustrerer prinsipper ved en fremgangsmåte for å representere videodata.
Den illustrerte fremgangsmåten er en fremgangsmåte for å representere videodata relatert til en makroblokk i et videobilde i en kodingsprosedyre der bestemte videodata, eller kombinasjon av videodata, eller kombinasjoner av videodata, representeres i forhåndsdefinerte eventer assosiert med indekserte posisjoner i en variabel lengdekodings-(VLC-)tabell. VLC-tabellen innbefatter koder tilordnet hver indekserte posisjon.
Fremgangsmåten starter ved initieringstrinnet 200.
Forekomsten av et første event blant nevnte forhåndsdefinerte eventer under kodingsprosedyren detekteres i detekteringstrinnet 210. De etterfølgende trinn utføres forutsatt at det første event er detektert i trinn 210.
Videre, i tabelloppslagstrinnet 220, blir en posisjon x assosiert med det detekterte første event oppslått i VLC-tabellen.
Videre, i kodetilveiebringelsestrinnet 230, blir en kode tilordnet posisjonen x i VLC-tabellen tilveiebrakt.
Videre, i testtrinnet 240, blir det bestemt om posisjonen x>0. Det er tilfelle dersom eventet er assosiert med en posisjon forskjellig fra posisjonen ved toppen av VLC-
tabellen, siden posisjonen ved toppen har indeks=0. Dersom x>0, utføres VLC-rearrangeringstrinnet 250. Ellers avsluttes fremgangsmåten ved trinnet 260.
I VLC-tabellrearrangeringstrinnet 250 rearrangeres VLC-tabellen ved
• å assosiere et andre event, nåværende assosiert ved en posisjon x-1, med posisjonen x, og • å assosiere det første event blant nevnte forhåndsdefinerte eventer med posisjonen x-1.
Videodataene som anvendes i fremgangsmåten kan være en eller flere av de følgende:
• størrelse av kvantiserte transformkoeffisienter,
• antall ikke-null-kvantiserte transformkoeffisienter i en blokk,
• posisjon for en siste ikke-null-kvantisert transformkoeffisient i en blokk,
• størrelse av en blokk,
• kodingsmodus, og
• Coded Block Pattern.
Fremgangsmåten avsluttes ved termineringstrinnet 260.
Figur 3 er et skjematisk flytskjema som illustrerer prinsippene ved en fremgangsmåte for å produsere koder relatert til en makroblokk i et videobilde.
Den illustrerte fremgangsmåten er en fremgangsmåte for å tolke koder relatert til en makroblokk i et videobilde i en dekodingsprosedyre, hvor kodene tolkes som forhåndsdefinerte eventer som representerer dekodede videodata eller kombinasjoner av dekodede videodata assosiert med indekserte posisjoner i en variabel lengdekode-(VLC-)tabell som innbefatter koder tilordnet hver indekserte posisjon.
Fremgangsmåten starter ved initieringstrinnet 300.
Forekomsten av en kode under dekodingsprosedyren detekteres i detekteringstrinnet 310. De etterfølgende trinn utføres forutsatt at koden er detektert i trinn 310.
Videre, i tabelloppslagstrinnet 320, blir en posisjon x assosiert med den detekterte koden oppslått i VLC-tabellen.
Videre, i eventtilveiebringelsestrinnet 330, tilveiebringes et første event assosiert med en posisjon x i VLC-tabellen.
Videre, i testtrinnet 340, bestemmes om posisjonen x>0. Dette er tilfelle dersom den detekterte koden er assosiert med en posisjon forskjellig fra posisjonen ved toppen av VLC-tabellen, siden posisjonen ved toppen har indeks =0. Dersom x>0, utføres rearrangeringstrinnet 350. Ellers avsluttes fremgangsmåten ved trinn 360.
I VLC-tabellrearrangeringstrinnet 350 rearrangeres VLC-tabellen ved å utføre trinnene: • å assosiere et andre event, nåværende assosiert med en posisjon x-1, med posisjon x, og
• å assosiere det første event med posisjonen x-1.
Videodata benyttet i fremgangsmåten kan være en eller flere av følgende:
• størrelse av kvantiserte transformkoeffisienter,
• antall ikke-null-kvantiserte transformkoeffisienter i en blokk,
• posisjon av en siste ikke-null-kvantisert transformkoeffisient i en blokk,
• størrelse av en blokk,
• kodingsmodus, og
• Coded Block Pattern.
Fremgangsmåten avsluttes ved termineringstrinnet 360.
Figur 4 er et skjematisk blokkdiagram som illustrerer prinsipper ved en kodingsinnretning 400.
Kodingsinnretningen 400 er en innretning som representerer videodata relatert til en makroblokk i et videobilde i en kodingsprosedyre hvor visse videodata eller kombinasjoner av videodata er representert i forhåndsdefinerte eventer assosiert med indekserte posisjoner i en variabel lengdekodings-(VLC)tabell innbefattende koder tilordnet hver indekserte posisjon.
Kodingsinnretningen 400 omfatter en intern bus 420, som sammenbinder en prosesseringsinnretning slik som en mikroprosessor 410, en I/O-innretning 450 og et minne 420. Minnet 420 innbefatter en del 430 som inneholder prosesseringsinstruksjoner og en del 440 som inneholder VLC-tabelldata. I/O-innretningen 450 innbefatter en inngangsinnretning og en utgangsinnretning (ikke vist separat) som begge er forbundet til bussen 420. Videodata 460 mates som input til inngangsinnretningen innbefattet i I/O-innretningen 450, og er således tilgjengelig for prosessering av prosesseringsinnretningen 410. Utgangsinnretningen innbefattet i I/O-innretningen 470 er anordnet for å tilveiebringe VLC-data 470, generert av prosesseringsinnretningen 410, som output. Prosesseringsinstruksjonene som inneholdes i minnedelen 430 er konfigurert til å forårsake at prosesseringsinnretningen 410 utfører en fremgangsmåte for å representere videodata beskrevet i den foreliggende spesifikasjonen, slik som en fremgangsmåte beskrevet med henvisning til figur 2.
Figur 5 er et skjematisk blokkdiagram som illustrerer prinsipper ved en dekodingsinnretning 500.
Dekodingsinnretningen 500 er en innretning for å representere videodata relatert til en makroblokk i et videobilde i en kodingsprosedyre hvor visse videodata eller kombinasjoner av videodata er representert i forhåndsdefinerte eventer assosiert med indekserte posisjoner i en variabellengdekodings-(VLC-) tabell som innbefatter koder anordnet til hver indekserte posisjon.
Dekodingsinnretningen 500 omfatter en intern bus 520, som sammenbinder en prosesseringsinnretning slik som en mikroprosessor 510, en I/O-innretning 550 og et minne 520. Minnet 520 innbefatter en del 530 som inneholder prosesseringsinstruksjoner og en del 540 som inneholder VLC-tabelldata. I/O-innretningen 550 innbefatter en inngangsinnretning og utgangsinnretning (ikke vist separat) som begge er forbundet til bussen 520. VLC-data 570 mates som inngang til inngangsinnretningen innbefattet I/O-innretningen 550, og er således tilgjengelig for produsering av produseringsinnretningen 510. Utgangsinnretningen innbefattet i I/O-innretningen 550 er anordnet for å tilveiebringe videodata 560, generert av prosesseringsinnretningen 410, som output.
Prosesseringsinstruksjonene inneholdt i minnedelen 530 er konfigurert til å forårsake at prosesseringsinnretningen 510 utfører en fremgangsmåte for å tolke koder som forhåndsdefinerte eventer, som beskrevet i den foreliggende spesifikasjonen, slik som en fremgangsmåte som beskrevet med henvisning til figur 3.
Den foreliggende oppfinnelsen kan anvendes med et mangfold av, eller praktisk talt alle, VLC-implementeringer. Når for eksempel en del av en videosekvens dominert av blå farge forekommer, ville CBP-eventene som inneholder ikke-null-blåkomponenter ha relativ høy sannsynlighet, mens eventer som inneholder ikke-null-rødkomponenter ville være liten. Når fargen av sekvensen har endret til rød, ville sannsynligheten for eventene ha endret seg. VLC-tabellen ville, i samsvar med den foreliggende oppfinnelsen, da gradvis rearrangeres på grunn av endringen av farge.
Eventtabellene for kodingsmoduser angir typisk interprediksjon med 1, 2 eller 4 bevegelsesvektorer, intraprediksjon osv. Ved liten bevegelse i bildet fra ramme til ramme kan intermodus med en bevegelsesvektor typisk ha den største sannsynlighet. Ved overgang til en del av sekvensen med voldsom bevegelse - eller til og med sceneskifte - kan intramodus være mest sannsynlig modus.
Slik det allerede er angitt, anvender den foreliggende oppfinnelsen en adaptiv reordning av eventer i en eventtabell for dynamisk å oppnå en nærmere overensstemmelse mellom sannsynlighetsfordelingen av eventene og lengdene av VLC-kodene. Reordningen gjøres dynamisk og på samme måte med koderen og dekoderen, slik at det ikke er noe behov for signalering av noen sideinformasjon i relasjon til reordningen. Den eksakte dynamiske reordningen kan gjøres på ulike måter.
Ved en utførelsesform av den foreliggende oppfinnelsen betraktes kodingsmodus. Modus i denne sammenheng definerer måten en MB predikteres og kodes på. En typisk tabell kan være:
I tilfelle av CBP, finnes en 64 eventtabell som definerer hvilke av de 6 8x8 blokkene i en MB som har ikke-null-koeffisienter eller ikke. Det mest hyppige eventet kan variere, så en dynamisk VLC i samsvar med den foreliggende oppfinnelsen kan også være fordelaktig å anvende i tilfelle av CBP.
Koding av den siste posisjonen er som tidligere nevnt relatert til kodingen av NxN transformkoeffisienter. Statistisk er lavfrekvenskoeffisienten større en høyfrekvenskoeffisienten. Dette reflekteres i skanningen av koeffisienter som avbildet i figur 1. Det er derfor typisk at mange koeffisienter mot slutten av skanningen er lik 0. Derfor kan det være nyttig å signalere posisjonen for den siste ikke-null-koeffisienten i skanningen. Det er også fordelaktig å angi hvorvidt absoluttverdien av denne siste ikke-null-koeffisienten er lik 1 eller >1. Derfor ender vi opp med en eventtabell med 2N<2> eventer.
Det vil nå beskrives en måte for dynamisk tilpasning av ordningen av modus-eventtabellen ovenfor, i samsvar med den foreliggende oppfinnelse. Anta at prosessen starter med antakelsen at event_0 er det mest sannsynlige, event_l er nest mest sannsynlig, osv. Da starter rekkefølgen av eventer originalt med tabellen:
Posisjonen i strengen angir tallet for koden som skal anvendes. Anta at den første instansen event_2 skal kodes. Da skal kodetallet 2 benyttes. Samtidig bytter event_2 plass med eventet til venstre i strengen, hvilket resulterer i den nye rekkefølgen som skal anvendes til å kode det neste eventet:
Event_2 opptrer igjen, og er denne gangen kodet med kodetall 1. Da finner en ny reordning sted, med det følgende resultat: Det neste som skal kodes, er event_4, som bruker kodetallet 4. Etter koding flyttes event_4 en posisjon fremover, hvilket fører til den nye event-rekkefølgen
Denne prosessen fortsetter og endrer dynamisk rekkefølgen av tabellen til å overensstemme med rekkefølgen av sannsynlighet. Dersom reordningen reflekterer bare temporære betingelser, vil VLC-en gradvis konvertere tilbake til den originale rekkefølgen til VLC-en. Dersom de stabile lys- og fargeforhold ikke overensstemmer spesielt godt med statistikken som den originale rekkefølgen var avledet fra, så vil den dynamiske VLC-en tendere til å konvertere til en ulik statisk rekkefølge, mer tilpasset de aktuelle forholdene.
Denne dynamiske reordningen er ikke begrenset til modustabellen i eksempelet, men kan anvendes med en hvilken som helst tabell. Fremgangsmåten for dynamisk tilpasning er heller ikke begrenset til den enkle fremgangsmåten beskrevet ovenfor.
Fremgangsmåten og innretningene ifølge den foreliggende oppfinnelsen behøver ingen utveksling av data mellom koder og dekoder.
Fremgangsmåten og innretningene ifølge den foreliggende oppfinnelsen resulterer i mer effektiv koding/dekoding av digitalt komprimert video ved dynamisk å reordne eventtabellene og oppnå en bedre overensstemmelse mellom eventsannsynligheter og VLC-kodeord. Dette er særlig nyttig ved koding av video med lys- og fargebetingelser som temporært eller konstant skiller seg fra de forventede betingelser som de statiske VLC-er er avledet fra.

Claims (6)

1. Fremgangsmåte for å representere videodata relatert til en makroblokk i et videobilde i en kodingsprosedyre hvor visse videodata eller kombinasjoner av videodata representeres i forhåndsdefinerte eventer assosiert med indekserte posisjoner i en variabellengdekodings- (VLC-) tabell innbefattende koder tilordnet hver indekserte posisjon, karakterisert ved at når et første event blant nevnte forhåndsdefinerte eventer under kodingsprosedyren forekommer, utføres trinnene å kode det første event med en kode tilordnet til en posisjon x i VLC-tabellen som er assosiert med det første event, og dersom x>0, å rearrangere VLC-tabellen ved å assosiere et andre event, nåværende assosiert med en posisjon x-1, med posisjon x, og å assosiere det første event med posisjonen x-1.
2. Fremgangsmåte i samsvar med krav 1, karakterisert ved at nevnte videodata er en eller flere av følgende: størrelse av kvantiserte transformkoeffisienter, antall ikke-null-kvantiserte transformkoeffisienter i en blokk, posisjon for en siste ikke-null-kvantisert transformkoeffisient i en blokk, størrelsen av en blokk, kodingsmodus og Coded Block Pattern.
3. Fremgangsmåte for å tolke koder vedrørende en makroblokk i et videobilde i en dekodingsprosedyre hvor kodene tolkes som forhåndsdefinerte eventer som representerer dekodede videodata eller kombinasjoner av dekodede videodata assosiert med indekserte posisjoner i en variabellengdekodings- (VLC-) tabell innbefattende koder anordnet hver indekserte posisjon, karakterisert ved at når en kode forekommer under dekodingsprosedyren, utføres trinnene å tolke koden som et første event blant nevnte forhåndsdefinerte eventer assosiert med en posisjon x i VLC-tabellen som koden er tilegnet til, og dersom x>0, å rearrangere VLC-tabellen ved å assosiere et andre event; nåværende assosiert med en posisjon x-1, med posisjon x, og å assosiere det første event med posisjonen x-1.
4. Fremgangsmåte i samsvar med krav 3, karakterisert ved at nevnte videodata er en eller flere av følgende, størrelse av kvantiserte transformkoeffisienter, antall ikke-null-kvantiserte transformkoeffisienter i en blokk, posisjon for en siste ikke-null-kvantisert transformkoeffisient i en blokk, størrelsen av en blokk, kodingsmodus og Coded Block Pattern.
5. Innretning for å representere videodata vedrørende en datablokk i et videobilde i en kodingsprosedyre hvor visse videodata etter kombinasjoner av videodata er representert i forhåndsdefinerte eventer assosiert med indekserte posisjoner i en variabellengdelodings- (VLC-) tabell innbefattende koder tilordnet til hver indekserte posisjon, omfattende en buss, som sammenbinder en inngangsinnretning anordnet for å lese nevnte videodata, en utgangsinnretning anordnet for å tilveiebringe VLC-data, en produseringsinnretning, og et minne, karakterisert ved at minnet omfatter prosesseringsinstruksjoner som bevirker at prosesseringsinnretningen utfører en fremgangsmåte som fremsatt i et av kravene 1 eller 2 når prosesseringsinstruksjonene eksekveres av prosesseringsinnretningen.
6. Innretning for å tolke koder vedrørende en makroblokk i et videobilde i en dekodingsprosedyre hvor kodene tolkes som forhåndsdefinerte eventer som representerer dekodede videodata eller kombinasjoner av dekodede videodata assosiert med indekserte posisjoner i en variabellengdekodings- (VLC-) tabell innbefattende koder tilordnet til hver indekserte posisjon, omfattende en bus, som sammenbinder en inngangsinnretning anordnet til å lese nevnte videodata, en utgangsinnretning anordnet til å tilveiebringe VLC-data, en produseringsinnretning, og et minne, karakterisert ved at minnet omfatter prosesseringsinstruksjoner som bevirker at prosesseringsinnretningen utfører en fremgangsmåte som fremsatt i et av kravene 3 eller 4 når prosesseringsinstruksjonene eksekveres av prosesseringsinnretningen.
NO20082612A 2007-12-20 2008-06-11 VLC-fremgangsmate og -innretning NO328295B1 (no)

Priority Applications (6)

Application Number Priority Date Filing Date Title
NO20082612A NO328295B1 (no) 2007-12-20 2008-06-11 VLC-fremgangsmate og -innretning
CN2008801209676A CN101904172B (zh) 2007-12-20 2008-12-19 Vlc方法和设备
JP2010539342A JP2011507450A (ja) 2007-12-20 2008-12-19 可変長符号化方法及び装置
PCT/NO2008/000464 WO2009082239A1 (en) 2007-12-20 2008-12-19 Vlc method and device
US12/339,817 US8306347B2 (en) 2007-12-20 2008-12-19 Variable length coding (VLC) method and device
EP08865415A EP2235952A4 (en) 2007-12-20 2008-12-19 VLC PROCESS AND DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NO20076589 2007-12-20
NO20082612A NO328295B1 (no) 2007-12-20 2008-06-11 VLC-fremgangsmate og -innretning

Publications (2)

Publication Number Publication Date
NO20082612L NO20082612L (no) 2009-06-22
NO328295B1 true NO328295B1 (no) 2010-01-25

Family

ID=40788723

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20082612A NO328295B1 (no) 2007-12-20 2008-06-11 VLC-fremgangsmate og -innretning

Country Status (6)

Country Link
US (1) US8306347B2 (no)
EP (1) EP2235952A4 (no)
JP (1) JP2011507450A (no)
CN (1) CN101904172B (no)
NO (1) NO328295B1 (no)
WO (1) WO2009082239A1 (no)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010279496A (ja) * 2009-06-03 2010-12-16 Fujifilm Corp データ転送システム、送信装置、受信装置、放射線画像転送システム、および放射線画像診断システム
US9025661B2 (en) * 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US20120082230A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Variable length coding of video block coefficients
US20120163471A1 (en) * 2010-12-23 2012-06-28 Qualcomm Incorporated Variable length coding of video block coefficients
TWI420830B (zh) 2010-12-31 2013-12-21 Ind Tech Res Inst 動態解碼查詢表之產生方法與應用其之電子裝置
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
US8687904B2 (en) * 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
GB2491391B (en) * 2011-06-02 2014-09-03 Canon Kk Encoding mode values representing prediction modes
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
JP2013126093A (ja) * 2011-12-14 2013-06-24 Sony Corp 画像処理装置及び画像処理方法
US10171810B2 (en) 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
US10003807B2 (en) 2015-06-22 2018-06-19 Cisco Technology, Inc. Block-based video coding using a mixture of square and rectangular blocks
US10009620B2 (en) 2015-06-22 2018-06-26 Cisco Technology, Inc. Combined coding of split information and other block-level parameters for video coding/decoding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04280517A (ja) * 1991-03-08 1992-10-06 Fujitsu Ltd データ圧縮および復元方式
JP3109185B2 (ja) * 1991-11-12 2000-11-13 ソニー株式会社 ディジタルvtr
JPH07334344A (ja) * 1994-06-09 1995-12-22 Matsushita Electric Ind Co Ltd データ符号化装置
JPH08116263A (ja) * 1994-10-17 1996-05-07 Fujitsu Ltd データ処理装置及びデータ処理方法
KR0139161B1 (ko) * 1994-11-26 1998-05-15 김광호 가변장부호테이블의 심볼-부호어 재배정을 이용한 가변장 부호화/복호화 장치
JPH1023425A (ja) * 1996-07-01 1998-01-23 Sony Corp 画像符号化装置および方法、画像復号化装置および方法、並びに画像記録媒体
JP2002204450A (ja) * 2000-12-28 2002-07-19 Sony Corp データ処理装置および方法
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
KR100750092B1 (ko) * 2000-01-28 2007-08-21 삼성전자주식회사 가변장 코딩방법 및 장치
JP4130780B2 (ja) * 2002-04-15 2008-08-06 松下電器産業株式会社 画像符号化方法および画像復号化方法
US20040120404A1 (en) * 2002-11-27 2004-06-24 Takayuki Sugahara Variable length data encoding method, variable length data encoding apparatus, variable length encoded data decoding method, and variable length encoded data decoding apparatus

Also Published As

Publication number Publication date
US8306347B2 (en) 2012-11-06
EP2235952A1 (en) 2010-10-06
EP2235952A4 (en) 2011-08-31
JP2011507450A (ja) 2011-03-03
WO2009082239A1 (en) 2009-07-02
NO20082612L (no) 2009-06-22
CN101904172A (zh) 2010-12-01
CN101904172B (zh) 2013-08-21
US20090161974A1 (en) 2009-06-25

Similar Documents

Publication Publication Date Title
NO328295B1 (no) VLC-fremgangsmate og -innretning
KR101837040B1 (ko) 영상 부호화/복호화 방법 및 장치
RU2701961C2 (ru) Регулировка динамического диапазона для кодирования видео с расширенным динамическим диапазоном и широкой цветовой гаммой
TWI705697B (zh) 在視訊寫碼中調色板區塊大小之限制
US8401082B2 (en) Methods and systems for refinement coefficient coding in video compression
JP4234607B2 (ja) 画像/ビデオエンコーダおよび/またはデコーダにおける符号化変換係数
TWI689195B (zh) 用於調色板寫碼之寫碼逃脫像素
NO335451B1 (no) Adaptiv variabel lengdekoding
US9516316B2 (en) VLC coefficient coding for large chroma block
NO322043B1 (no) Fremgangsmate for forenklet entropikoding
JP2015524216A (ja) 映像コーディングにおけるロスレスコーディングモード及びパルスコード変調(pcm)モードのシグナリングの統一
KR20180069818A (ko) 넌-4:4:4 크로마 서브-샘플링의 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
US20120147971A1 (en) Codeword adaptation for variable length coding
EP2196031B1 (en) Method for alternating entropy coding
US20100104207A1 (en) System and method for image compression
KR20160145181A (ko) 디스플레이 스트림 압축 (dsc) 을 위해 패턴 모드에서 코딩하기 위한 시스템 및 방법
CN115086664A (zh) 未匹配像素的解码方法、编码方法、解码器以及编码器
US20110243437A1 (en) System and method for image compression
KR20020078523A (ko) 영상 압축 방법 및 그 장치
CN114979628A (zh) 图像块预测样本的确定方法及编解码设备
JP2023529854A (ja) ビデオビットストリームの各レイヤ表現のための値の導出

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees