NO332205B1 - Implementering av entropikoding/dekoding av transformasjonskoeffisientdata til videokompressjonssystemer i datamaskininnretninger - Google Patents

Implementering av entropikoding/dekoding av transformasjonskoeffisientdata til videokompressjonssystemer i datamaskininnretninger Download PDF

Info

Publication number
NO332205B1
NO332205B1 NO20090715A NO20090715A NO332205B1 NO 332205 B1 NO332205 B1 NO 332205B1 NO 20090715 A NO20090715 A NO 20090715A NO 20090715 A NO20090715 A NO 20090715A NO 332205 B1 NO332205 B1 NO 332205B1
Authority
NO
Norway
Prior art keywords
positions
coefficients
matrix
run
values
Prior art date
Application number
NO20090715A
Other languages
English (en)
Other versions
NO20090715L (no
Inventor
Lars Petter Endresen
Original Assignee
Cisco Systems Int Sarl
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 Cisco Systems Int Sarl filed Critical Cisco Systems Int Sarl
Priority to NO20090715A priority Critical patent/NO332205B1/no
Priority to PCT/NO2009/000447 priority patent/WO2010077148A1/en
Priority to CN200980153613.6A priority patent/CN102273204B/zh
Priority to EP09836441A priority patent/EP2384581A4/en
Publication of NO20090715L publication Critical patent/NO20090715L/no
Publication of NO332205B1 publication Critical patent/NO332205B1/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
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/176Methods 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 block, e.g. a macroblock
    • 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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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

Landscapes

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

Abstract

Den foreliggende oppfinnelsen relaterer seg til en implementering av en prosess for å representere transformasjonskoeffisienter i kompresjon/dekompresjon av digitale videosystemer i multiformålsprosessorer. Den tilveiebringer en metode for signifikant å redusere nødvendig prosessorkapasitet sammenlignet med implementering i henhold til tidligere kjent teknikk. I henhold til oppfinnelsen blir kvantiserte transformasjonskoeffisienter som representerer en blokk med piksler i et videobilde pakket til halvparten av minnestørrelsen, og blir så maskert slik for å generere en matrise med 1'ere og 0'ere som definerer posisjonene til ikke-nullkoeffiseienter i den korresponderende matrisen med pakkede transformasjonskoeffisienler. Denne forberedelsen unngår tolkning gjennom posisjonene i matrisen av transformasjonskoeffisienter hvor nullverdier opptrer når en genererer kjøringsnivårepresentasjoner av koeffisientene, og vil dermed signifikant redusere nødvendig antall løkker som skal eksekveres.

Description

Introduksjon
Den foreliggende oppfinnelsen omhandler implementering av entropikoding/ dekoding av transformasjonskoeffisientdata til videokompresjonssystemer i datamaskininnretninger.
Bakgrunn for oppfinnelsen
Transmisjon av bevegelige bilder i sanntid blir utført i flere applikasjoner som f.eks. videokonferanse, nettmøter, TV-kringkasting og videotelefoni.
Imidlertid krever det å representere bevegelige bilder store datamengder siden digital video typisk blir beskrevet ved å representere hver piksel i hvert 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.
Dermed krever muliggjøring av sanntidsvideotransmisjon stor datakompresjon. Datakompresjon kan imidlertid kompromittere billedkvaliteten. Derfor har mye blitt gjort for å utvikle kompresjonsteknikker som tillater sanntidstransmisjon med høy videokvalitet over båndbreddebegrensede dataforbindelser.
I videokompresjonssystemer er hovedmålet å representere videoinformasjon med så liten kapasitet som mulig. Kapasiteten er definert med bits, enten som en konstant verdi eller som bits/tidsenhet. I begge tilfeller er hovedmålet å redusere antall bits.
Den vanligste videokodingsmetoden er beskrevet i MPEG<*>og H.26<*>standardene. Videodata undergår fire hovedprosesser før transmisjon, som er prediksjon, transformasjon, kvantisering og entropikoding.
US-2006/0256854 beskriver et system og en metode for parallell eksekvering av mediakoding ved å utføre "single instruction multiple data" prosessering av en makroblokk. Her inngår bl.a. prediksjon.
Prediksjonsprosessen reduserer mengden av nødvendige bits betraktelig for hvert bilde i en videosekvens som skal overføres. Den utnytter lignende deler av sekvensen med andre deler av sekvensen siden den predikterende delen er kjent for både koder og dekoder, trengs kun forskjellen å bli overført. Denne forskjellen krever typisk mye mindre kapasitet enn dens representasjon. Predikteringen blir hovedsakelig basert på vektorer som representerer bevegelser. Prediksjonsprosessen blir typisk utført på kvadratblokkstørrelser (f.eks. 16x16 piksler). Bemerk at i noen tilfeller baserer prediksjonen av piksler seg på at tilliggende piksler i det samme bildet brukes i stedet for piksler til foregående bilder. Dette blir referert til som intraprediksjon i motsetning til interprediksjon.
Resten som er representert som en blokk av data (f.eks. 4x4 piksler) inneholder fremdeles intern korrelasjon. En velkjent metode for å utnytte fordelen av dette er å utføre en todimensjonal blokktransformasjon. I H.263 blir en 8x8 diskret cosinustransformasjon (DCT) brukt. Mens H.264 bruker en 4x4 heltallstype transformasjon. Denne transformerer 4x4 piksler til 4x4 transformasjonskoeffisienter og de kan vanligvis bli brukt for å representere færre bits enn pikselrepresentasjonen. Transformasjon av 4x4 matrise av piksler med intern korrelasjon vil sannsynligvis resultere i en 4x4 blokk med transformasjonskoeffisienter med mange færre ikke-nullverdier enn en opprinnelig 4x4 pikselblokk.
Direkte representasjon av transformasjonskoeffisienter er fremdeles for kostbart for mange applikasjoner. En kvantiseringsprosess blir utført for en videre reduksjon av datarepresentasjonen. Dermed undergår transformasjonskoeffisientene kvantisering. En enkel personlig kvantisering er å dele parameterverdier på tall - som resulterer i et mindre tall som kan representere færre bits. Det skal også nevnes at denne kvantiseringsprosessen har som et resultat at den rekonstruerte videosekvensen er noe ulik fra den ukomprimerte sekvensen. Dette blir referert til som "lossy coding". Utfallet fra denne kvantiseringsdelen blir referert til som kvantiserings-transformasjonskoeffisienter.
Entropikoding er en spesiell form for tapsløs datakompresjon. Den involverer blant annet å arrangere billedkomponentene i en "zigzag" rekkefølge som bruker RLE (run-length encoding) algoritme som grupperer lignende frekvenser sammen, innfører lengdekodingsnuller, og bruker så Huffman-koding på det som er igjen.
I en H.264 koding blir DCT-koeffisientene for en blokk regruppert for å gruppere sammen ikke-nullkoeffisienter i en matrise, som muliggjør effektiv representasjon av gjenværende nullverdikoeffisienter. Zigzag-omgrupperingsstien (skanne-rekkefølgen) er vist i fig. 1. Mønsteret til rekkefølgen av zigzag-skannet blir konfigurert i henhold til sannsynligheten for ikke-nullkoeffisienter for hver posisjon. På grunn av karakteristikken til foregående DCT avtar sannsynligheten til ikke-nullkoeffisienter i en blokk nedover mot høyre i diagonal retning til en DCT-blokk. Ved omgruppering av koeffisientene i et zigzag-mønster som illustrert i fig. 1, vil ikke-nullkoeffisienter tendere til å konsentrere seg i de første delene av matrisen.
Utfallet av omgrupperingsprosessen er en endimensjonal matrise som typisk inneholder én eller flere klustere av ikke-nullkoeffisienter nær starten, etterfulgt av strenger med null-koeffisienter. På grunn av det store antallet med nullverdier, blir matrisen videre representert som en serie med (run, level) par hvor run indikerer antallet med nuller forutgående for ikke-nullkoeffisienten, og level indikerer størrelsen av ikke-nullkoeffisienten. Som et eksempel, vil input matrisen 16, 0, 0, -3, 5, 6, 0, 0, 0, 0, -7, ... ha de følgende korresponderende run-level verdiene (0, 16), (2, -3), (0, 5), (0, 6), (4, -7)...
Ved transformering av zigzag-matrisen til run-level-verdier, er det beregningsmessig dyrt å gå over alle koeffisientene å sjekke om de er ikke-nullere. Ettersom billedoppløsningen øker, vil dette kreve en betydelig mengde med prosessorkapasitet og også introdusere for mye forsinkelse, spesielt dersom kodingsprosessen blir implementert på vanlige delte prosessorer, f.eks. på personlige datamaskiner.
Sammendrag av oppfinnelsen
Den foreliggende oppfinnelsen tilveiebringer en metode i en videokoding eller dekodingsprosess implementert i en datamaskininnretning for å beregne run og level representasjoner til respektive kvantiserte transformasjonskoeffisienter som representerer pikselverdier innbefattet i en blokk til et videobilde, hvor metoden innbefatter trinnene med å pakke hver kvantiserte transformasjonskoeffisient til et verdiintervall [Max, Min] ved å sette alle kvantiserte transformasjonskoeffisienter større enn Max lik til Max, og alle kvantiserte transformasjonskoeffisienter mindre enn Min lik til Min, og regruppere de kvantiserte transformasjonskoeffisientene i henhold til en forhåndsdefinert rekkefølge avhengig av respektive posisjoner i blokken som resulterer i en matrise C med omgrupperte kvantiserte transformasjonskoeffisienter, maskering av C ved å generere en matrise M som inneholder l'ere i posisjonene korresponderende til posisjonene til C som har ikke-nullverdier, og 0'ere i posisjonene som korresponderer til posisjonene til C som har nullverdier, og for hver posisjon som inneholder en 1 i M, å generere en respektiv run og level representasjon ved å sette level-verdien lik til forekommende verdi i korresponderende posisjon til C, og sette run-verdien lik til antall foregående posisjoner relativt til foreliggende posisjon i M siden tidligere forekomst av 1 i M.
Kort beskrivelse av tegninger
For å gjøre oppfinnelsen lettere forståelig, vil den følgende diskusjonen refererer til tilhørende tegninger og tabeller. Fig. 1 illustrerer et zigzag-mønster som blir brukt i tidligere kjent teknikk for å transformere koeffisienter før entropikoding, Fig. 2 er et flytskjema som illustrerer implementeringen av run-level-koding i henhold til tidligere kjent teknikk, Fig. 3 er et flytskjema som illustrerer en implementering av run-level-koding i henhold til den foreliggende oppfinnelsen, og Fig. 4 er et eksempel på en bitmask av en transformasjonskoeffisient under ulike trinn i henhold til den foreliggende oppfinnelsen.
Detaljert beskrivelse av oppfinnelsen
Fig. 2 er et flytskjema som illustrerer hvordan run-level-kode i henhold til MPEG4 og H.264 blir beregnet i en implementering i henhold til tidligere kjent teknikk. Etter kvantisering av transformasjonskoeffisientene (Quant C) i en blokk, blir de kvantiserte koeffisientene regruppert til en endimensjonal matrise i henhold til tidligere nevnte zigzag-mønstre. Prosessen går så over i en løkke for å syntaksanalysere matrisen for å bestemme run-level-verdier. Først blir det skjekket om antall posisjoner i matrisen overgår (I > 16). Dersom ikke det, blir det så sjekket om foreliggende posisjon i matrisen inneholder en null. Om det er tilfelle, vil både run-variabelen og posisjonsindeks (I) bli inkrementert, og prosessen går videre til starten av løkken igjen. Dersom ikke dette er tilfelle (foreliggende posisjon inneholder en ikke-nullverdi), blir foreliggende run-variabel og verdien til foreliggende posisjon lagret som en run-level-verdi. Run-variabelen blir så resatt, før begge run-variablene og posisjonsindeks (I) blir inkrementert og prosessen går videre til starten av løkken igjen. Prosessen slutter når posisjonsindeksen overstiger maksimum størrelse av matrisen, som i eksemplet illustrert i fig. 2 er 16.
Som det kan ses fra eksemplet av en tidligere kjent teknikkimplementering illustrert i fig. 2, må den alltid gå gjennom flere run-level-kodingsløkker så mange ganger som det er posisjoner i matrisen (f.eks. 16 ganger). Dette blir svært inneffektivt siden mange koeffisienter i C er null, og det er beregningsmessig dyrt å gå over alle koeffisientene å sjekke om de er ikke-nullere.
I den følgende beskrivelsen med ulike eksempler på implementering av den foreliggende oppfinnelsen vil det refereres til noen standardfunksjoner i biblioteket til det generelle formåls programspråket C++ som er direkte mappet til et kompakt og effektivt lavnivå CPU-instruksjonsprogram. C++ er omstrakt brukt i software industrien. Noen av dens applikasjoner innbefatter systemsoftwareinnretnings-drivere, embedded software, høyytelsesserver og klientapplikasjoner, og underholdningsprogrammer så vel som for implementering av koding og dekoding til sanntidsvideo for generelt formålsdatamaskiner.
Fig. 3 er et flytskjema som illustrerer et eksempel på implementering i henhold til den foreliggende oppfinnelsen. I denne implementeringen blir bitmasker og bitskann-instruksjoner som gjør det mulig å effektivt hoppe over alle nullverdikoeffisientene brukt. Den starter som i tidligere kjent teknikk ved å kvantisere transformasjonskoeffisientene i blokken. I eksemplet er det 16 koeffisienter som blir lagret i vektor C.
Prosessen går så videre med å pakke alle kvantiserte koeffisienter. I den eksempelvise implementeringen blir dette gjort av C++ instruksjonen PACKUSWB, som transformerer 16 signerte ord til usignerte heltall og satureringer (eng: saturates). Dette betyr at dersom en koeffisient er større eller mindre enn området med en usignert byte, blir koeffisienten satt til respektivt maks- eller min-verdien i området, som i denne implementeringen er 255 og 0. På denne måten vil minnestørrelsen til hver koeffisient bli redusert fra 2 til 1 byte.
Dette er en approksimasjon som kan føre til ulike resultater når svært lave kvantiseringsparametere (QP) blir brukt. Imidlertid har oppfinneren erfart at denne approksimasjonen ikke degraderer videokvaliteten på en måte som er synlig for det menneskelige øyet, ved å monitorere denne approksimasjonen på en utstrakt måte for et vidt utvalg av ulike videokonferansescenarioer.
QP er en parameter definert i noen av MPEG<*>og H.26<*>standardene, og bestemmer trinnstørrelsen for å assosiere de transformerte koeffisientene med et endelig sett av trinn. Store verdier til QP representerer store trinn som grovt approksimerer den spatiale transformasjonen, slik at det meste av signalet kan fanges av kun noen få koeffisienter. Små verdier av QP approksimerer mer nøyaktig blokkenes spatialfrekvensspektrum, men med den kostnad av flere bits.
En grunn for pakkingstrinnet er at det muliggjør den følgende omgrupperingen av koeffisienter til å bli utført i én funksjon uten å måtte analysere en 16 gangers loop. Dette kan bli gjort ved å bruke C++ funksjonen PSHUFB. Denne funksjonen skaffer til veie nøyaktig 16 bytes i enhver rekkefølge. I denne implementeringen er inngangsverdien de 16 koeffisientene og zigzag-rekkefølgen illustrert i fig. 1.
Det neste trinnet er å maskere de kvantiserte, pakkede og omgrupperte koeffisientene. Dette blir gjort ved f.eks. å anvende C++ funksjonene PCMPGTB og PMOVMSKB. PCMPGTB-funksjonen fyller en hel byte med enere i posisjonen til ikke-nullverdier, og lar 0'ere være uforandret i posisjonen til nullere. PMOVMSKB-funksjonen lager en 16 bits maske fra de mest signifikante bitsene til 16 bytes. Resultatet til disse to funksjonene når de anvendes på matrisen med kvantiserte, pakkede og regrupperte koeffisienter (C) er en 16 bits matrise (M) hvor 0'ere indikerer korresponderende posisjoner til ikke-nullverdier til C.
Ved å ha utledet M for C, blir trinnet med faktisk beregning av run-level-verdiene mye mindre beregningskrevende og krever ingen looper for nullverdier. Som allerede indikert, i masken M, blir én bit satt for hver ikke-nullverdi til C. Dermed vil, når M er null, alle koeffisientene være null og run-level-koding blir avsluttet.
Dersom M ikke er null, kan C++ funksjonen BSF bli brukt for å beregne indeksen til den første ikke-nullverdien til C. BSF returnerer bitindeksen til den i det minste signifikante biten til et heltall, dvs. i tilfelle med M, den første posisjonen til en 1 som starter fra den høyre siden.
Dermed vil denne indeksen som blir returnert av BSF når den anvendes på M være lik til run og bli brukt direkte for å slå opp i C-matrisen for å bestemme nivå. Dette er mulig siden C allerede har blitt skaffet ved å bruke PSHUFB-instruksjonen.
Run-verdi som indikert av BSF-funksjonen blir så lagret, og etter å ha slått opp verdien lokalisert ved den posisjonen i C blir så lagret som level-verdi.
M blir til slutt skiftet til høyre run+1 ganger for å klarere indeksbit fra M og forberede M til den neste iterasjonen i løkken. Ved å gjøre dette blir innholdet til M som korresponderer til run-level-verdiene allerede beregnet fjernet fra M, og løkken kan anvendes på den samme måten for å beregne gjenværende run-level-verdier.
Siden alle nullere hoppes over ved å effektivt bruke BSF-instruksjonen, er kun ikke-nullkoeffisientkjøringer nødvendig for å beregne alle level- og run-verdiene. Antallet løkker som skal analyseres ved å implementere entropikoding vil derfor bli dramatisk redusert, siden sannsynligheten for opptreden av mange nuller i en blokk med kvantifiserte koeffisienter er høy.
Den foreliggende oppfinnelsen unngår et indirekte tabelloppslag (pointer chasing) for å bestemme nivået, å bruke en enkelt effektiv BSF-instruksjon for å beregne run.
Videre tilveiebringer den foreliggende oppfinnelsen run-level-koding med ikke-null koeffisient run. F.eks., dersom fem verdier i C er ikke-null, vil kun 5 run gjennom run-level-kodingsløkken være nødvendig. Dermed blir sjekking av nullverdier i C unngått, som ellers ville ledet til beregningsmessige kostbare grenmistolkninger.

Claims (5)

1. Metode i en videokodings- eller dekodingsprosess i en datamaskininnretning for å beregne run og level representasjoner av respektive kvantiserte transformasjonskoeffisienter som representerer pikselverdier innbefattet i en blokk i et videobilde, karakterisert vedde følgende trinnene: å pakke hver kvantiserte transformasjonskoeffisient i et verdiintervall [Max, Min] ved å sette alle kvantisere transformasjonskoeffisienter større enn Max lik til Max, og alle kvantiserte transformasjonskoeffisienter mindre enn Min lik til Min; å regruppere de kvantifiserte transformasjonskoeffisientene i henhold til en forhåndsdefinert rekkefølge avhengig av respektive posisjoner i blokken som resulterer i en matrise C med omgrupperte kvantiserte transformasjonskoeffisienter med en omgrupperingsfunksjon som er i stand til å håndtere minneinngangsverdier med en minnestørrelse som korresponderer med en størrelse definert av intervallet; å maskere C ved å generere en matrise M som inneholder 1 'ere i posisjonene korresponderende til posisjonen til C som har ikke-nullverdier, og 0'ere i posisjoner korresponderende til posisjoner av C som har null-verdier, og for hver posisjon som inneholder en 1 i M, å generere en respektiv run og level representasjon ved: å bestemme posisjoner som inneholder ikke-nullverdier i C ved å korrespondere til posisjoner inneholdende l'ere i M, og hvor dette blir eksekvert ved en C++ funksjon BSF, og å sette level verdien lik til opptredende verdi i korresponderende posisjon av C, og sette run verdien lik til antall med foregående posisjoner relatert til foreliggende posisjon i M siden foregående opptreden av 1 i M.
2. Metode i henhold til krav 1, karakterisert vedat trinnet med å maskere videre innbefatter de følgende trinnene: å lage en matrise C fra C hvor posisjonene korresponderer til posisjoner med ikke-nullverdier i C blir fylt med l'ere, og posisjonene korresponderende til posisjonene til nullverdiene i C blir fylt med 0'ere, å lage M fra C ved å trekke ut den mest signifikante biten fra verdiene i respektive posisjoner av C og innsette bitene i korresponderende posisjoner i M.
3. Metode i henhold til krav 2, karakterisert vedat trinnet med å lage matrisen C blir eksekvert ved en C++ funksjon PCMPGTB, og trinnet med å lage M fra C blir eksekvert ved en C++ funksjon PMOVMSKB.
4. Metode i henhold til et av kravene 1-3, karakterisert vedat omgrupperingsfunksjonen blir eksekvert ved en C++ funksjon PSHUFB, hvor Max er 256, Min er 0 og minnestørrelsen er én byte.
5. Metode i henhold til et av kravene 1-4, karakterisert vedat den forhåndsdefinerte rekkefølgen følger en zigzag-sti med transformasjonskoeffisienposisjoner i blokken som starter i øvre venstre hjørne og går ned mot det nedre høyre hjørnet.
NO20090715A 2008-12-30 2009-02-13 Implementering av entropikoding/dekoding av transformasjonskoeffisientdata til videokompressjonssystemer i datamaskininnretninger NO332205B1 (no)

Priority Applications (4)

Application Number Priority Date Filing Date Title
NO20090715A NO332205B1 (no) 2008-12-30 2009-02-13 Implementering av entropikoding/dekoding av transformasjonskoeffisientdata til videokompressjonssystemer i datamaskininnretninger
PCT/NO2009/000447 WO2010077148A1 (en) 2008-12-30 2009-12-28 Method, apparatus and computer readable medium for calculating run and level representations of quantized transform coefficients representing pixel values included in a block of a video picture
CN200980153613.6A CN102273204B (zh) 2008-12-30 2009-12-28 用于计算表示视频画面块中包含的像素值的量化变换系数的游程-幅度表示的方法、设备和计算机可读介质
EP09836441A EP2384581A4 (en) 2008-12-30 2009-12-28 METHOD, DEVICE AND COMPUTER READABLE MEDIUM FOR CALCULATING CONTINUOUS AND LEVEL PRESENTATIONS OF QUANTIZED TRANSFORMATION COEFFICIENTS FOR PRESENTING PIXEL VALUES IN A BLOCK OF A VIDEO IMAGE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NO20085407 2008-12-30
NO20090715A NO332205B1 (no) 2008-12-30 2009-02-13 Implementering av entropikoding/dekoding av transformasjonskoeffisientdata til videokompressjonssystemer i datamaskininnretninger

Publications (2)

Publication Number Publication Date
NO20090715L NO20090715L (no) 2010-07-01
NO332205B1 true NO332205B1 (no) 2012-07-30

Family

ID=42309982

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20090715A NO332205B1 (no) 2008-12-30 2009-02-13 Implementering av entropikoding/dekoding av transformasjonskoeffisientdata til videokompressjonssystemer i datamaskininnretninger

Country Status (4)

Country Link
EP (1) EP2384581A4 (no)
CN (1) CN102273204B (no)
NO (1) NO332205B1 (no)
WO (1) WO2010077148A1 (no)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO332357B1 (no) * 2010-07-30 2012-09-03 Cisco Tech Inc Implementering av run/level-koding
CN101964912A (zh) * 2010-10-15 2011-02-02 北京中科大洋科技发展股份有限公司 一种在mpeg2中游程编码快速计算游程长度的方法
NO336215B1 (no) 2012-12-27 2015-06-15 Pexip AS Simultan og sløyfefri vektorberegning av alle run-level par i videokomprimering.

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628717B1 (en) * 1998-11-04 2003-09-30 Lg Electronics Inc. Lossless coding method and video compression coding device using the same
US20080046698A1 (en) * 2006-08-21 2008-02-21 Kapil Ahuja Run Length Encoding in VLIW Architecture

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7630569B2 (en) * 2002-02-26 2009-12-08 Decegama Angel Real-time software video/audio transmission and display with content protection against camcorder piracy
US8606023B2 (en) * 2006-06-26 2013-12-10 Qualcomm Incorporated Reduction of errors during computation of inverse discrete cosine transform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628717B1 (en) * 1998-11-04 2003-09-30 Lg Electronics Inc. Lossless coding method and video compression coding device using the same
US20080046698A1 (en) * 2006-08-21 2008-02-21 Kapil Ahuja Run Length Encoding in VLIW Architecture

Also Published As

Publication number Publication date
CN102273204B (zh) 2014-05-14
CN102273204A (zh) 2011-12-07
WO2010077148A1 (en) 2010-07-08
NO20090715L (no) 2010-07-01
EP2384581A4 (en) 2012-05-30
EP2384581A1 (en) 2011-11-09

Similar Documents

Publication Publication Date Title
US7499596B2 (en) Amplitude coding for clustered transform coefficients
WO2011005105A1 (en) Computer implemented early skip
US7564382B2 (en) Apparatus and method for multiple description encoding
US9407933B2 (en) Simultaneous and loopless vector calculation of all run-level pairs in video compression
WO2017139117A1 (en) Video decoder memory optimization
US20120027081A1 (en) Method, system, and computer readable medium for implementing run-level coding
JP2003188733A (ja) 符号化方法及び装置
NO332205B1 (no) Implementering av entropikoding/dekoding av transformasjonskoeffisientdata til videokompressjonssystemer i datamaskininnretninger
US10715821B2 (en) Embedding information about EOB positions
NO332357B1 (no) Implementering av run/level-koding
JPH03158070A (ja) 高速画像デコーダ
Sagheer et al. Fast intra-frame compression for video conferencing using adaptive shift coding
US7221708B1 (en) Apparatus and method for motion compensation
Manoria et al. An efficient DCT compression technique using Strassen's matrix multiplication algorithm
US8331709B2 (en) Fixed buffer real-time image compression technique
CN110858900B (zh) 复用精简反量化乘法因子和位移表的数据压缩方法和装置
KR100195187B1 (ko) 일정압축률 정지영상 압축 장치 및 그 방법
CN115706797A (zh) 多媒体数据编码方法、装置、设备以及介质
WO2014189981A1 (en) Transform system and method in video and image compression
WO2022268236A1 (en) Image compression and associated color approximation
Dobrovolný The Quality Comparsion Of Svd And Dct Based Image Comperssion Methods For Embedded Devices
KR20200101686A (ko) 센터-투-에지 점진적 영상 부호화/복호화 방법 및 장치
Khan et al. Performance Analysis of JPEG Algorithm on the basis of Quantization Tables
JP2007214680A (ja) データ固定長化方法

Legal Events

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