NO309790B1 - Syntaksspalter for videodekompresjonsprosessor - Google Patents

Syntaksspalter for videodekompresjonsprosessor Download PDF

Info

Publication number
NO309790B1
NO309790B1 NO954261A NO954261A NO309790B1 NO 309790 B1 NO309790 B1 NO 309790B1 NO 954261 A NO954261 A NO 954261A NO 954261 A NO954261 A NO 954261A NO 309790 B1 NO309790 B1 NO 309790B1
Authority
NO
Norway
Prior art keywords
data
length
video
shift
slots
Prior art date
Application number
NO954261A
Other languages
English (en)
Other versions
NO954261L (no
NO954261D0 (no
Inventor
Chris Hoogenboom
Original Assignee
Gen Instrument Corp
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 Gen Instrument Corp filed Critical Gen Instrument Corp
Publication of NO954261D0 publication Critical patent/NO954261D0/no
Publication of NO954261L publication Critical patent/NO954261L/no
Publication of NO309790B1 publication Critical patent/NO309790B1/no

Links

Classifications

    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B41/00After-treatment of mortars, concrete, artificial stone or ceramics; Treatment of natural stone
    • C04B41/45Coating or impregnating, e.g. injection in masonry, partial coating of green or fired ceramics, organic coating compositions for adhering together two concrete elements
    • C04B41/52Multiple coating or impregnating multiple coating or impregnating with the same composition or with compositions only differing in the concentration of the constituents, is classified as single coating or impregnation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Chemical & Material Sciences (AREA)
  • Ceramic Engineering (AREA)
  • Materials Engineering (AREA)
  • Structural Engineering (AREA)
  • Organic Chemistry (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

En videosyntaksspalter (40) er tilvelebragt for en videodekompresjonsprosessor (20). En komprimert bitstrøm (106) granskes Inntil en startkode (100) er lokalisert. Startkoden (100) dekodes for å klargjøre en bestemt spaltertllstand som tilsvarer denne, å bli initiert. Spaltertilstanden formidles til et flertall av undersystemer (36, 42, 44, 46, 48, 52, 54, 56) 1. videodekompresjonsprosessoren (20). Hvert undersystem overvåker spaltertilstanden for å bestemme hvilke spaltede data som etterfølger startkoden, om enn noen, er beregnet for det undersystemet. Undersystemet henter så inn de spaltede data som det krever via en databuss (58) som mottar de spaltede data fra spalteren (40).

Description

Den foreliggende oppfinnelse vedrører en videodekompresjonsprosessor, og nærmere bestemt en videosyntaksspalter som inngår i en videodekompresjonsprosessor, der de felter som er av interesse blir spaltet ut fra en komprimert videobitstrøm til forskjellige delsystemer i dekompresjonsprosessoren.
Digital overføring av fjernsynssignaler kan levere video- og audiotjenester med langt høyere kvalitet enn analoge teknikker. Digitale overføringsmetoder er særlig fordelaktige for signaler som utsendes via kabelfjernsynsnettverk eller ved hjelp av satelitt til kabelfjernsynstilknyttede og/eller direkte til hjemmebaserte satelittfjernsynsmottagere. Det forventes at digitale fjernsynssendere og mottagersystemer vil erstatte eksisterende analoge systemer akkurat som digitale kompaktplater har erstattet analoge grammofonplater innenfor lydindustrien.
En vesentlig mengde av digitale data må overføres i et hvilket som helst digitalt fjernsynssystem. I et digitalt fjernsynssystem mottar en abonnent den digitale datastrøm via en mottager/deforvrenger som gir video, audio og data til abonnenten. For på mest mulig effektiv måte å anvende det tilgjengelige radiofrekvensspektrum, er det fordelaktig å komprimere de digitale fjernsynssignaler for å minimalisere mengden av data som må overføres.
Videodelen av et fjernsynssignal omfatter en sekvens av video-"rammer" som sammen gir et bevegelig bilde. I digitale fjernsynssystemer blir hver linje i en videoramme definert av en sekvens av digitale biter som refereres til som "bildeelementer". En stor mengde av data behøves for å definere hver videoramme i et fjernsynssignal. Eksempelvis kreves det 7,4 megabiter av data for å tilveiebringe en videoramme på NTSC (National Television System Committee) oppløsning. Dette forutsetter at en 640 bildeelement ganger 480 linjers fremvisning anvendes med åtte biter av intensitetsverdi for hver av de primære farger rød, grønn og blå. Med PAL (phase alternating line) oppløsning kreves 9,7 megabiter av data for å tilveiebringe en videoramme. I dette tilfellet blir en 704 bildeelementers ganger 576 linjers fremvisning anvendt med åtte biter av intensitetsverdi for hver av de primære farger rød, grønn og blå. For å håndtere denne mengde av informasjon må dataene komprimeres.
Videokomprimeringsteknikker muliggjør den effektive overfør-ing av digitale videosignaler over konvensjonelle kommunika-sjonskanaler. Slike teknikker gjør bruk av kompresjonsal-goritmer som drar fordel av korrelasjonen blant hosliggende bildeelementer for å utlede en mer effektiv representasjon av den viktige informasjon i et videosignal. De mest kraftige kompresjonssystemer drar ikke bare fordel av romlig korrela-sjon, men kan også anvende likheter blant hosliggende rammer for ytterligere å kompaktere dataene. I slike systemer blir differentiell koding vanligvis anvendt for å sende kun forskjellen mellom en aktuell ramme og en forutsigelse av den aktuelle ramme. Forutsigelsen er basert på informasjon som utledes fra en foregående ramme i den samme videosekvens.
Eksempler over videokompresjonssystemer som gjør bruk av bevegelsekompensering kan finnes i Krause et al., US-patenter 5057916, 5068724, 5091782, 5093720 og 5235419. Generelt drar slike bevegelsekompenseringssystemer fordel av en blokktil-pasnings, bevegelseestimeringsalgoritme. I dette tilfellet bestemmes en bevegelsevektor for hver blokk i en eksisterende ramme av et bilde ved å identifisere en blokk i en foregående ramme som temmelig nær ligner den bestemte eksisterende blokk. Hele den eksisterende ramme kan så rekonstrueres på en dekoder ved å sende forskjellen mellom de korresponderende blokkpar, sammen med bevegelsevektorene som kreves for å identifisere de korresponderende par. Ofte blir mengden av sendte data ytterligere redusert ved å komprimere både de forflyttede blokkforskjeiler og bevegelsevektorsignalene. Blokktilpasningsbevegelse estimerende algoritmer er særlig effektive når de er kombinert med blokkbaserte, romlige kompresjonsteknikker, slik som den diskrete cosinus-transformasjon (DCT). Ytterligere kompresjon kan oppnås ved å anvende variabel-lengdekoding for å tilveiebringe "kodeord" som har kortere lengde for hendelser som vil mer sannsynlig opptre og lengere kodeord for mindre sannsynlige hendelser. På mottageren blir kodeord som har variabel lengde dekodet ved hjelp av eksempelvis en Huffman-dekoder. Et eksempel på en Huffman-dekoderrealisering kan eksempelvis finnes i US-patent 5233348 (Pollmann et al.) og denne publikasjon inngår her i form av denne henvisning.
Hver av en rekkefølge av digitale videorammer som danner et videoprogram kan kategoriseres som en intraramme (I-ramme), forutsagt ramme (P-ramme) eller toveisramme (B-ramme). Forutsigelsen er basert på den midlertidige korrelering mellom suksessive rammer. Deler av rammer avviker ikke fra hverandre over korte tidsperioder. Kodings- og dekodingsmet-odene avviker for hver type av bilde. De enkleste metoder er de som anvendes for I-rammer, etterfulgt av de for P-rammer og så B-rammer. I-rammer beskriver fullstendig en enkelt ramme uten henvisning til en hvilken som helst annen ramme. For forbedret feilskjul ing, kan bevegelsevektorer inngå med en I-ramme. En feil i en I-ramme har potentialet for større virkning på den fremviste video ettersom både P-rammer og B-rammer forutsies fra en I-ramme.
P-rammer forutsies basert på tidligere I- eller P-rammer. Referansen er fra en tidligere I- eller P-ramme til en fremtidig P-ramme og benevnes derfor "fremoverforutsigelse". B-rammer forutsies fra den nærmest tidligere I- eller P-ramme og den nærmeste senere I- eller P-ramme. Referansen til et fremtidig bilde (dvs. et som ikke tidligere er blitt fremvist) benevnes som "bakoverforutsigelse". Der finnes tilfeller der bakoverforutsigelse er meget nyttig for å øke kompresjonstakten. På et handlingssted der eksempelvis en dør åpner seg, kan det eksisterende bildet forutsi hva som er bak døren basert på en fremtidig bilde der døren allerede er åpen.
B-rammer gir den største kompresjon, men innbefatter også den største feil. For å eliminere feilforplantning, kan B-rammer aldri forutsies fra andre B-rammer. P-rammer gir mindre feil og mindre kompresjon. I-rammer gir den minste kompresjon, men er i stand til å gi vilkårlig tilganginnføringspunkter til en videosekvens.
En standard som er blitt anvendt for koding av digitale videosignaler er standarden ifølge "Motion Picture Experts Group" (MPEG) og nærmere bestemt MPEG-2 standarden. Denne standard spesifiserer ikke noen bestemt fordeling som I-rammer, P-rammer og B-rammer må ta innenfor en sekvens. I stedet tillater standarden forskjellige fordelinger for å gi forskjellige grader av kompresjon og vilkårlig tilgjenge-lighet. En vanlig fordeling er å ha I-rammer omtrent hvert halve sekund og to B-rammer mellom suksessive I- eller P-rammer. For å dekode P-rammer, må den foregående I-ramme være tilgjengelig. Likeledes, for å dekode B-rammer, må de foregående og fremtidige P- eller I-rammer være tilgjengelige. Følgelig blir videorammene kodet i en avhengighetsor-den, slik at samtlige bilder som anvendes for forutsigelse kodes før bildene forutsies derfra. Ytterligere detaljer vedrørende MPEG-2 standarden (og den alternative DigiCipher<®>II-standard) og dens implementering i en videodekompresjonsprosessor kan finnes i dokument MC68VDP/D, et prelimi-nært datablad med tittel "MPEG-2/DCII Video Decompression Processor", <£>Motorola Microprocessor and Memory Technologies Group, 1994, hvilken publikasjon inngår her ved denne henvisning.
For å implementere videokompresjon i praktiske systemer, kreves en videodekompresjonsprosessor for hver digitale fjernsynsmottager. Utviklingen av integrerte kretsbrikker som har integrasjon i meget stor målestokk (VLSI = very large scale integration) er i øyeblikket underveis for å realisere slike videodekompresjonsprosessorer. I forbrukerprodukter slik som fjernsynsapparater, er det uhyre viktig at kostnaden for systemets komponenter kan holdes så lav som mulig.
Et viktig undersystem i en videodekompresjonsprosessor er kjent som videosyntaksspalteren. Dette undersystem er ansvarlig for utspalting av de felter som er av interesse fra den komprimerte videobitstrøm, som eksempelvis kan være i DigiCipher II eller MPEG-2 syntaksen. Typisk vil spalteren motta sine data fra et eksternt direktelager. Forskjellige undersystemer i videodekompresjonsprosessoren vil kreve forskjellige datafelter fra den innkommende bitstrøm. Eksempelvis vil en bevegelsevektordekoder kreve at bevegelsevektorer føres i bitstrømmen. En dekoder for kodeord med variabel lengde, slik som en Huffman-dekoder innenfor dekompresjonsprosessoren, vil kreve kodeordene for dekoding til transformasjonskoeffisienter. Andre undersystemer i videodekompresjonsprosessoren vil også kreve forskjellig informasjon ført i bitstrømmen. Samtlige av denne informasjon må spaltes fra bitstrømmen og føres videre til det passende undersystem for ytterligere behandling. Spalteren er et hastighetskritisk undersystem. Det må oppnå og spalte de ønskede data fra den innkommende bitstrøm på en effektiv og ordentlig basis. Spalterens kompleksitet må reduseres i mest mulig utstrekning for å holde dens kostnad på et minimum.
Den foreliggende oppfinnelse tilveiebringer en videosyntaksspalter som tilfredsstiller de tidligere nevnte kriteri-er .
De for oppfinnelsen kjennetegnende trekk fremgår av de vedlagte patentkrav, samt av den etterfølgende beskrivelse, og også med henvisning til de vedlagte tegninger.
I henhold til den foreliggende oppfinnelse er en videosyntaksspalter tilveiebragt for en videodekompresjonsprosessor. En inngang på spalteren mottar en komprimert bitstrøm som har data som skal spaltes. Midler er tilveiebragt for å spalte dataene fra den komprimerte bitstrømmen. Midler er også tilveiebragt for å dekode startkoder som befinner seg i de data som spaltes fra den komprimerte bitstrøm. Midler som reagerer på en startkode dekodet av dekodingsmidlet initierer en bestemt spaltertilstand som tilsvarer startkoden. En spaltertilstandsutmatning formidler spaltertilstanden til et flertall av undersystemer i videodekompresjonsprosessoren. En datautgang er tilveiebragt for formidling av spaltede data fra spaltingsmidlet til en databuss som betjener flertallet av undersystemer. Hvert av nevnte flertall av undersystemer overvåker spaltertilstanden for å bestemme hvilke data, om enn noen av de spaltede data på databussen som er beregnet for det undersystemet. Hvert undersystem kan så hente de spaltede data som er beregnet for dette.
I en Illustrert utførelsesform omfatter spaltingsmidlene skiftmidler koblet for å motta og midlertidig lagre data fra den komprimerte bitstrøm. Skiftmidlene reagerer på en skiftlengdekommando for utmatning av suksessive deler av den komprimerte bitstrøm til dekodingsmidlet. Skiftmidlene kan omfatte et flerskiftsregister (barrel shifter). Datautmatning fra flerskiftsregisteret granskes av dekodingsmidlet for å lokalisere startkoder og for å oppdatere spaltertilstanden under sukssive spaltersykluser mellom startkoder. Utmatningen fra skiftregisteret tilveiebringer også de spaltede data til datautmatningen, for kommunikasjon til flertallet av undersystemer som selektivt anvender dataene.
Flerskiftsregisteret kan motta den komprimerte bitstrøm fra første og andre registere. Det første registeret reagerer på et klargjøringssignal for mottagelse av de komprimerte bitstrømdata fra en kilde, slik som et videorammelager. Det andre registeret reagerer på klargjøringssignalet for mottagelse av suksessive deler av de komprimerte bitstrømdata fra det første registeret. Klargjøringssignalet tilveiebringes når skiftlengdekommandoen når eller overskrider en forutbestemt verdi.
De suksessive deler av komprimerte bitstrømdata som leveres til dekodingsmidlet vil typisk ha en fast lengde lik N biter. Nevnte første og andre registere er hver N-bit registere og flerskiftregisteret skifter inntil N biter av gangen.
Skiftlengdekommandoen er en kumulativ verdi som inkrementeres ved hjelp av en "feltlengde" under suksessive spaltingssyk-luser for å kontrollere antallet av biter ved hjelp av hvilke flerskiftsregisteret skiftes hver syklus. Feltlengden dikteres av spaltertilstanden under hver syklus. Midler er tilveiebragt for å avkorte den kumulative verdi for å tilveiebringe et sett av minst signifikante biter for bruk som skiftlengdekommandoen og en mer signifikant bit for å tilveiebringe klargjøringssignalet. I den viste utførelses-form blir de fem minst signifikante biter i et seks biters ord anvendt som skiftlengdekommandoen og den mest signifikante biten anvendes til å tilveiebringe klargjøringssig-nalet .
Den komprimerte bistrømmen kan innbefatte både ord som har fast lengde og kodeord som har variabel lengde (VLC) som skal spaltes. I en slik utførelsesform omfatter spalteren dessuten en velger som har en første inngang for å motta feltlengden og minst en andre inngang for mottagelse av en VLC-lengde. Midler som reagerer på spaltertilstanden aktiverer velgeren til å utmate feltlengden for inkrementering av den kumulative verdi under sykluser når ord med fast lengde skal spaltes fra bitstrømmen og for å aktivere velgeren til å utmate en VLC-lengde for inkrementering av den kumulative verdi under sykluser når kodeord med variabel lengde skal spaltes fra bitstrømmen. Midler er tilveiebragt for samtidig å inkrementere den kumulative verdi ved hjelp av en VLC-lengde og en blokkslutt (EOB = end of block) lengde ved slutten av en blokk av data som har variabel lengde og som spaltes fra den komprimerte bitstrøm. En slik struktur unngår behovet for å anvende en separat spaltersyklus kun for en blokkslutt-melding.
En taktflytbuffer kan kobles mellom kilden for den komprimerte bitstrøm (for eksempel den eksterne DRAM) og register-midlene som anvendes til å laste bitstrømdataene inn i skiftmidlet. Taktflytbufferen reagerer på klargjørings-signalet for bufferbehandling av suksessive deler av de komprimerte bitstrømdata fra kilden. I en illustrert utførelsesform omfatter taktflytbufferen et først-inn først-ut (FIFO = first-in first-out) register koblet for å motta data fra et videorammelager via en hukommelseadministrator. Fig. 1 er et blokkskjema over en videodekompresjonsprosessor som innbefatter en videosyntaksspalter i henhold til den foreliggende oppfinnelse. Fig. 2 er et detaljert blokkskjema over videosyntaksspal teren som vist i fig. 1. Fig. 3 er et skjematisk fremstilling av en komprimert bistrøm som innbefatter startkoder og data som skal spaltes. Fig. 4 er et tidsskjema over videosyntaksspalteren vist i
fig. 2.
Fig. 5a og 5b tilveiebringer et flytskjema som viser operasjonen av videosyntaksspalteren ifølge fig. 2. Fig. 1 er et blokkskjema over en videodekompresjonsprosessor som innbefatter en hukommelseadministrator 30 som adresserer eksterne DRAM 22 for å oppnå data som skal spaltes i henhold til den foreliggende oppfinnelse. Prosessoren, generelt betegnet med 20, er en parallellutført (pipelined) prosessor konstruert til å dekode både transportlaget (dvs. styrings-og annen ikke-videoinformasjon) og videolaget av den komprimerte bitstrøminnmatning via terminal 10, av og til referert til som "transportpakkegrensesnittet" i videoproses-soren.
Et brukerprosessorgrensesnitt er tilveiebragt ved terminal 14 for styring av videodataprosessoren via en M-busstyreenhet 50 som konfigurerer forskjellige registere i prosessor 20. M-bussen er en to-lednings, toveis seriebuss som tilveiebringer et enkelt og effektivt middel for datautveksling mellom anordninger, og er fullstendig kompatibel med I<2>C busstandar-den.
Et grensesnitt til DRAM 22 tilveiebringes via adresselinjer 24 og datalinjer 26. I den særlige utførelsesform som er vist i fig. 1, har DRAM 22 en ni biters adresseport og en trettito biters dataport.
Videoutmatningsgrensesnittet 38 er tilveiebragt for den dekomprimerte, rekonstruerte video som kan eksempelvis utmates som et standard CCIR (International Radio Consultive Committee) 656, åtte biters, 27 MHz multiplekset lystetthets (Y) og farge (krominans) (Cr, Cb) signal.
Et testgrensesnitt kan tilveiebringes via terminal 62 til en konvensjonell JTAG (Joint Test Action Group) styreenhet 60. JTAG er en standardisert grenseavsøksmetodikk som anvendes for kort-nivåtesting for å detektere feil i pakke og kortforbindelser, samt interne kretser.
Videodekompresjonsprosessoren 20 mottar et klokkesignal via terminal 12. Klokken tilveiebringer tidsstyringsinformasjon for, for eksempel, å muliggjøre at en transportsyntaksspalter 32 kan gjenvinne tidsstyringsinformasjon og videoinformasjon fra transportpakkene i den komprimerte bitstrøminnmatning via terminal 10. En innhentings- og feiladministreringskrets 34 anvender en programklokkereferanse (PCR = program clock reference) og dekodingstidsstempel (DTS) som detekteres av en videosyntaksspalter 40 for å synkronisere starten av bildedekoding. Denne krets setter vertikal synkronisering og tilveiebringer global synkronisering for samtlige videode-kodings- og fremvisningsfunksjoner.
Videolaget bufferbehandles i en inngangsbuffer (FIFO) som er konfigurert i det eksterne DRAM 22 ved hjelp av hukommelseadministrator 20. Videosyntaksspalter 40 mottar den komprimerte videodatautmatning fra DRAM FIFO via hukommelseadministrator 30, og separerer bevegelsevektorinformasjonen fra koeffisientene som beskriver videoinformasjonen. Koeffisientene behandles ved hjelp av en Huffmann-dekoder 52, invers kvantiserer 54, og invers, diskret cosinus-transformasjon (IDCT) prosessor 56.
Bevegelsevektorer gjenvinnes og anvendes til å adressere tidligere dekodede videorammer som behøves for rekonstruering av en eksisterende videoramme. I særdeleshet dekoder bevegelsevektordekoder 42 bevegelsevektorene som mottas fra videosyntaksspalteren 40 og fører disse til en forutsigelseadressegenerator 44. Forutsigelseadressegeneratoren tilveiebringer adresseinformasjon som er nødvendig for å innhente, via hukommelseadministrator 30, de nødvendige ankerrammedata (I- og P-rammedata) for å muliggjøre at forutsigelsekalkulatoren 46 skal tilveiebringe de forut-sigelsedata som er nødvendige for å rekonstruere en eksisterende rammeblokk. Differentialdekoder 48 kombinerer forut-sigelsedataene med de dekodede koeffisientdata for å tilveiebringe dekomprimerte videodata. De dekomprimerte data lagres i passende buffere i DRAM 22 via hukommelseadministrator 30.
Det bør forståes at videodekompresjonsprosessen som utføres av bevegelsevektordekoder 42, forutsigelseadressegenerator 44, forutsigelseberegner 46, differentialdekoder 48, Huffman-dekoder 52, invers kvantiserer 54 og IDCT 56 er konvensjonell og godt forstått av fagfolk.
Hukommelseadministrator 30 planlegger all aktivitet på de eksterne DRAM-adresser og databusser 24, 26 og effektivt adresserer DRAM 22 i henhold til den foreliggende oppfinnelse. Hukommelseadministratoren sikrer at dataoverfør-lngskravene for inngangs FIFO-delen av DRAM 22, videosyntaksspalteren 40 og videorekonstruksjonskretsen 36 (samt forutsigelseberegner 46 og differentialdekoder 48) alle tilfredsstilles. Videorekonstruksjonskretsen 36 beregner et eksisterende bilde og innfører lukket bildetekst (closed caption), et vertikalt intervalltestsignal (VITS) og testmønsterdata for utmatning på videoutgangslinje 38. Den utmatede fremvisning synkroniseres ved å sammenligne nevnte PCR med et presentasjonstidsstempel (PTS). En bestemmelse av når dekodingen og fremvisningen av en videoramme må begynne foretas ved å sammenligne et dekodingstidsstempel (DTS) med nevnte PTS.
Hukommelseadministratoren tilveiebringer også en varibel størrelse for FIFO-delen av nevnte DRAM 22 avhengig av dekodingsmodusen, hvilken eksempelvis kan være NTSC eller PAL med eller uten toveis forutsigelserammer (B-rammer). Videobufferstyringen sikrer at nevnte FIFO som tilveiebringes ved hjelp av DRAM 22 ikke bringes til overflyt eller underflyt. Bufferstyring er en funksjon av system tidsstyr-ingsparametere innbefattende nevnte PCR og DTS.
DRAM 22 illustreres som et eksternt lager og kan tilveiebringes ved hjelp av et flertall av DRAM-brikker, slik som to, 4 Mbit (megabit, dvs. 2<20> biter) DRAM'er for en 8 Mbit implementering eller fire, 4 Mbit DRAM'er for en 16 Mbit implementering. Det vil forstås at i fremtidige implemen-teringer, og som hukommelseteknologifremskritt, kan DRAM 22 tilveiebringes som intern hukommelse innenfor videodekompresjonsprosessoren. Nevnte DRAM kartlegges til å gi forskjellige dekodings- og utmatningsvideobuffere samt som sirkulær FIFO for den komprimerte innmatede videobitstrøm. Nevnte DRAM kan også anvendes for å tilveiebringe en testmønsterbuffer, en VITS-buffer og en lukket bildetekst-dannende (captioning) fremvisningsordnende buffer, samt å lagre forskjellige bildestrukturdata som er nødvendige for riktig fremvise de dekodede videorammer. Nevnte DRAM kan réinitialiseres via hukommelseadministrator 30 til å gi forskjellige hukommelsekart etter behov når variabler modifiseres, slik som videorammens vertikale størrelse, PAL eller NTSC video, nærværet av testmønstre, 8 eller 16 Mbit hukommelsekonfigurasjon og hvorvidt B-rammer er tilstede.
Hukommelseadministratoren 30 planlegger samtlig av aktivitet-en på de eksterne DRAM-busser, innbefattende dataoverførings-kravene for nevnte inngangs FIFO, videospalteren og videorekonstruksjonskretsen. Hukommelseadministratoren utfører også den ønskede DRAM-fornying på en konvensjonell måte. Den samme rad i hver av to eller fire eksterne DRAM'er kan eksempelvis bli fornyet samtidig.
En liten mengde av FIFO kan tilveiebringes som en taktstrøm-ningsbuffer mellom hukommelseadministratoren 30 og hver av komponentene som aksesserer data fra nevnte DRAM 22. Eksempelvis inneholder videosyntaksspalteren 40 en liten taktstrømningsbuffer 72 (fig. 2) i banen som mottar data fra DRAM 22 via hukommelseadministrator 30. Videosyntaksspalteren krever et nytt dataord temmelig sjeldent. Når imidlertid et nytt ord behøves, må spalteren ha det umiddelbart. Ellers vil nedstrømsprosessene som krever en utmatning fra videosyntaksspalteren sitte uvirksomme, hvilket reduserer virkningsgraden for videodekompresjonsprosessoren. Dersom videosyntaksspalteren 40 skulle foreta individuelle anmodninger til nevnte DRAM hver gang den hadde behov for et nytt dataord, ville en langsom tilfeldig aksess bli resultatet og spaltningspro-sessen ville bli forsinket. Tilveiebringelsen av halv-taktstrømningsbufferen overvinner dette potentielle problem. Dersom eksempelvis taktstrømningsbufferen kan holde 20 ord av DRAM-data, vil videosyntaksspalteren være i stand til å oppnå et nytt dataord som den krever umiddelbart fra taktstrøm-ningsbufferen. Når taktstrømningsbufferen når et visst forutinnstilt nivå av tomhet, blir hukommelseadministratoren 30 dirigert til å lese flere data fra nevnte RAM. Når anmodningen om flere DRAM-data betjenes, blir dataene lest i et sekvensielt utbrudd og lagret til taktstrømningsbufferen inntil den er full.
Taktstrømningsbufferen hjelper DRAM I/O båndbredde og dekoderhastighet på grunn av at aksesser er sekvensielle og hurtige, vanligvis innenfor den samme rad i nevnte DRAM, og spalteren slipper sjelden opp for data. Nærmere bestemt kan en anmodning settes inn med hensyn til nye data før takt-strømningsbuf feren er blitt tømt fullstendig.
Som angitt i fig. 1, mottar videosyntaksspalteren 40 komprimert bitstrøminformasjon fra DRAM 22 via hukommelseadministrator 30. Spalteren mottar også forskjellige innhentings- og feiladministreringsinformasjon fra krets 34. Bevegelsevektordekoder tilveiebringer forskjellige håndtrykksinformasjon til spalteren, innbefattende eksempelvis makroblokkdataanmodninger, identifikasjon av bildekodings-typen, makroblokktypeinformasjon som dekodes av bevegelsede-koderen etter å være blitt spaltet ut fra videosyntaksspalteren og makroblokkdataene som har variabel kodelengde. Videosyntaksspalteren mottar også en viss håndtrykksinformasjon fra Huffman-dekoderen 52. Denne informasjon omfatter blokkdataanmodninger, makroblokksluttinformasjon, lengden av koder som har variabel lengde for datablokker, og en blokksluttlengdeidentifiserer. Annen håndtrykkinformasjon, slik som brukerdatafordringer knyttet til vertikalt blank-ingsintervall og et spalterklargjøringssignal mottas enten direkte eller via innhentings- og feiladministreringskretsen 34.
Videosyntaksspalteren innbefatter to utgangsbusser. Buss 57 tilveiebringer spaltertilstanden til hver av et flertall av undersystemer (dvs. bevegelsevektordekoderen 42, forutsigelseadressegeneratoren 44, forutsigelseberegneren 46, differentialdekoderen 48, Huffman-dekoderen 52, den inverse kvantiserer 54, IDCT 56 og videorekonstruksjonskretsen 36) i videodekompresjonsprosessoren 20. En databuss 58 kommuniserer spaltede data fra videosyntaksspalteren til de forskjellige undersystemer i videodekompresjonsprosessoren som krever slike data. Hvert undersystem som er koblet til busser 57 og 58 vil overvåke den eksisterende spaltetilstanden for å bestemme om påfølgende data i den spaltede datastrøm er beregnet for det undersystemet. Dersom spaltetilstanden indikerer at spaltede data for undersystemet følger, vil undersystemet hente disse data og behandle disse i henhold til dette.
Videosyntaksspalteren er vist i nærmere detalj i fig. 2. Den komprimerte bitstrøminformasjon som skal spaltes mottas fra DRAM 22 via hukommelseadministrator 30 på terminal 70. Dataene bufferbehandles inn i FIFO 72 for påfølgende overføring til et første register 74. I den spesielle realisering som er vist er register 74 et 32 biters register, selv om fagfolk vil forstå at dataene kan behandles med forskjellige ordlengder avhengig av spesielle systemkrav. Initielt blir en første 32 biters informasjon lastet inn i register 74. Under en påfølgende klokkesyklus blir innholdet i register 74 lastet inn i register 76, mens register 74 mottar ytterligere 32 informasjonsbiter fra FIFO 72.
Et flerskiftregister (eller ekvivalent skiftmiddel) 78 mottar dataene fra registeret 74 og 76 for påfølgende utmatning av passende deler derav til dekoder 80 og til spalterdatabussen 58.
En hensikt med dekoder 80 er å søke etter startkoder i datautmatningen fra flerskiftsregister 78. Dekoder 80 kan realiseres som en tilstandmaskin. Så snart en startkode er lokalisert og dekodet, vil den eksisterende tilstand for tilstandmaskinen bestemme lengden av det neste feltet i videosyntaksen. Den lengden oppdaterer en skiftlengde ved hjelp av hvilken flerskiftsregisteret foretar skift. En løpende total av de fem minst signifikante biter (LSB) av skiftlengden opprettholdes i en skiftlengdeakkumulator 92 og tilføres skiftlengdeinngangen på flerskiftregisteret. Den mest signifikante bit (MSB) i nevnte seks biters skiftlengde anvendes til å aktivere skift som er større enn 31 biter. Slike skift tilveiebringes ved å overføre innholdet I det første register 74 til andre register 76. Samtidig vil første reegister 74 motta nye data fra FIFO 72. Under den neste syklus presenteres nye data fra FIFO 72 til register 74 som reaksjon på et FIFO-klargjøringssignal, hvilket er klargjør-ingssignalet som anvendes for å aktivere registere 74 og 76 forsinket med en klokkesyklus ved hjelp av D-type vippe 94.
Fig. 3 viser, i skjematisk form, en komprimert bitstrøm som skal spaltes ved hjelp av videosyntaksspalteren ifølge fig. 2. Dekoderen 80 overvåker suksessiv 32 bit ordutmatning fra flerskiftregister 78 for å lokalisere en startkode. Ettersom bitstrømmen leveres på en bitgruppeinnrettet måte, vil ved søking etter en startkode flerskiftregisteret suksessivt bli skiftet med en bitgruppe (8 biter) av gangen inntil en 24 biters startkodesekvens 102 finnes i 32 biters startkoden 100. Eksempelvis kan startkodesekvensen 102 omfatte en rekke av 23 nuller etterfulgt av en binær "1". Ved gjenkjennelse av denne sekvens, vil dekoderen 80 dekode den neste bitgruppen, hvilken omfatter en 8-biters startkodeidentifikasjon (ID) 104. Startkoden ID identifiserer den bestemte informasjons-kategori som etterfølger startkoden. Den etterfølgende informasjon er de faktiske data 106 som skal spaltes ut til de forskjellige undersystemer i dekompresjonsprosessoren 20.
De forskjellige kategorier av data som skal utskilles dikteres av MPEG-2 eller DigiCipher II standardene. MPEG-2 standarden er beskrevet i detalj i International Standards Organization publikasjon nr. ISO/IEC 13818-2 som har tittel "Coding of Moving Pictures and Associated Audio", hvilken inngår her ved denne henvisning. Kategoriene av informasjon som kan identifiseres av startkodeidentifisereren 104 i en MPEG-2 eller DCII utførelsesform kan innbefatte eksempelvis en sekvenstopptekst, sekvensforlengelse, forlengelse og brukerdata, brukerdata, sekvensfremvisningsforlengelse, topptekst for gruppe av bilder, bildetopptekst, bildeforleng-else, bildedata, utsnittlag, makroblokklag og blokklag. Diverse forskjellig informasjon inngår innenfor hver av kategoriene. Eksempelvis vil en startkode som identifiserer en sekvenstopptekst bety at de påfølgende data som skal spaltes innbefatter en sekvenstopptekstkode, horisontal størrelseverdi, vertikal størrelse, prøveaspektforhold, rammetakt, bittakt, bufferstørrelseinformasjon, og kan også innbefatte en intrakvantiserermatrise og/eller en ikke-intrakvantiserermatrise. I tillegg kan sekvenstopptekstinfor-masjonen omfatte forskjellige markørbiter og flagg som er nødvendige for på riktig måte å spalte og dekode dataene. Hver av de andre kategoriene som det er referert til ovenfor vil omfatte sine egne lag av informasjon som skal anvendes av forskjellige undersystemer innenfor videodekompresjonsprosessoren. Ettersom lokaliseringen av hver av de forskjellige informasjonstyper som befinner seg i den komprimerte bitstrøm dikteres av MPEG og DigiCipher-standardene, kan, så snart startkoden er lokalisert, identiteten og lokaliseringen av samtlige etterfølgende informasjon inntil den startkoden lett identifiseres, for eksempel ved bruken av oppslagstabeller som kan tilveiebringes i syntetisert leselager. Videosyntaksspalteren 40 vil Inneholde en oppslagstabell for lengden av hver påfølgende felt i de data som skal spaltes etter en startkode. Oppslagstabeller for dekoding av selve dataene tilveiebringes i de forskjellige undersystemer i videodekompresjonsprosessoren som kommuniserer med videosyntaksspalteren. Eksempelvis vil bevegelsevektordekoder 42 og Huffman-dekoder 52 dekode og mate tilbake forskjellig håndtrykksinformasjon til videosyntaksspalteren som beskrevet ovenfor.
Under søking etter en startkode vil dekoder 80 utmate et "feltlengde"-signal for å bevirke flerskiftregisteret 78 til å bli skiftet med en bitgruppe (8 biter) under hver suksessive spaltersyklus. Feltlengdeutmatningen fra dekoderen 80 kobles til en adderer 88 via velger 84. Velgeren 84 kan utmate et hvilket som helst av tre signaler som innmates til denne, som reaksjon på den eksisterende spaltertilstandsinn-matning via terminal 98. Når spalteren initielt forsøker å lokalisere en første startkode, vil spaltertilstanden være i en signal innhentingsmodus som vil bevirke velger 84 til å utmate 8-bit feltlengden for summering med den tidligere skif tlengdeutmatning fra skif tlengdeakkumulator 92. Den tidligere skiftlengde innmates til adderer 88 via en adderer 86. Hensikten med adderer 86 er å øke skiftet med en blokkslutt (EOB) lengde ved slutten av hver blokk av DCT-koeffisienter som behandles av Huffman-dekoderen. EOB-lengden utmates fra Huffman-dekoderen 52 og summeres med den siste, variable lengde, kodede koeffisient i hver blokk for å unngå behovet for å kaste bort en separat klokkesyklus bare for EOB-lengden.
Etter at feltlengden adderes til den tidligere skiftlengden i adderer 88, avkortes resultatet i krets 90 for å gi de fem minst signifikante biter av summen til skiftlengdeakkumulator 92 og den mest signifikante sjette bit til vipperen 94. Denne
sjette bit tilveiebringer klargjøringssignalet for registere 74 og 76, hvilke laster nye data hver gang tilstanden for
biten endrer seg. Biten blir også forsinket av vippen 94 og anvendes til å klargjøre FIFO 72 til å presentere data for lasting inn i register 74 under den neste klargjøringssyklus.
Ved lokalisering av en startkode og dekoding av startkodeidentifisereren, vil en ny spaltertilstand bli utmatet fra dekoderen 80 og lagres i spaltertilstandregister 82. Spaltertilstanden kommuniseres også til hvert av dekompre-sjonsprosessorundersystemene som er koblet til spaltertil-standsbussen 57. Når påfølgende data dekodes, vil spaltertilstanden endre seg og vil indikere til hvert undersystem hvilke data som er tilstede, slik at undersystemene kan hente passende data for ytterligere behandling.
Den forskjellige håndtrykksinformasjon som det er referert til ovenfor innmates til dekoder 80 via terminal 96. Denne informasjon kan innbefatte en makroblokkdataanmodning, blokkdataanmodning, makrotype, bildekodingstype, makroblokk-slutt, VBI-brukerdataanmodning, og/eller et spalterklargjør-ingssignal. Når kodeord som har variabel lengde dekodes i stedet for ord som har fast lengde, blir lengden av hvert kodeord innmatet til velger 84 fra bevegelsevektordekoder 42 i tilfellet av en makroblokk (MB VLC lengde) eller fra Huffman-dekoder 52 i tilfellet der kodeordet er representa-tivt for data fra en individuell blokk (BLOKK VLC lengde). Spaltertilstandsinnmatningen på terminal 98 vil aktivere velger 84 til å utmate BLOKK VLC eller MB VLC lengde slik det måtte passe.
Fig. 4 er et tidsskjema for forskjellige signaler innenfor videosyntaksspalteren. Signaler 110 og 112 er henholdsvis 54 MHz og 27 MHz klokker. Signal 114 representerer utmatningen fra flerskiftregister 78. Som angitt gir forskjellige forsinkelser som er naturlige i spalteren meget stram tidsstyring under hvilken begrensede muligheter er tilgjengelige for å utføre spalteroperasjoner. Signal 116 representerer utmatningen fra oppslagstabellen som gir lengden av hvert kodeord som har variabel lengde. Utmatningen fra skiftlengdeaddereren 88 og tidsstyringen av skiftlengdebitene som innmates til akkumulator 92 representerer av tidsstyringslinje 118. Skiftlengderesten er indikert ved hjelp av tidstyringslinje 120. Lastingen av nevnte første og andre registere 74, 76 er angitt ved hjelp av signaler 122, 124 som reagerer på klargjøringssignalet 126. Slik det vil sees, er FIFO-klargjøringssignalet 128 forsinket med en klokkesyklus. Utgangen fra FIFO 72 er angitt ved hjelp av tidsstyringslinje 130. Et eksempel på forskjellige spaltertilstander, innbefattende tider der koder med fast lengde (FLC) og variabel lengde (VLC) behandles, er angitt med 132. Lengden av kodeord som har fast lengde (min-lengde) utmatet fra dekoderen 80 er angitt med 134. Makroblokkanmodningssignalet fra bevegelses-vektordekoderen 42 er angitt med 136.
Fig. 5a og 5b omfatter et flytskjema som viser operasjonen av spalteren. Flytskjemaet begynner ved 150, og ved boks 152 blir f lerskif tregisterets utmatning gransket av dekoderen 80 (fig. 2) i søket etter en initiell startkode. Dersom de første 32 biter som presenteres for dekoderen ikke representerer en startkode, som bestemt ved boks 154, blir skiftlengden (som starter ut på null) inkrementert av feltlengden, hvilken settes til åtte biter når dekoderen søker etter en startkode. Inkrementeringen av skiftlengden er angitt ved boks 156. Ved boks 158 foretas en bestemmelse med hensyn til hvorvidt skiftlengden overskrider en verdi lik 32. Dersom den gjør dette, vil tilstanden av den mest signifikante bit i 6-biters summen fra addereren 88 endre seg, hvilket genererer et klargjøringssignal til å skifte nye data fra FIFO 72 til register 74, som angitt ved boks 160. Samtidig vil de gamle data fra register 74 bli lastet inn i register 76. Etter at dataene er blitt skiftet, eller i tilfellet at skiftlengden ikke overskrider en verdi lik 32, vil dataene i flerskiftsregisteret bli skiftet med skiftlengden som angitt ved boks 162.
Rutinen fortsetter så med dekoderen 80 som søker suksessive 32 bit ord (hvert skiftet åtte biter med hensyn til det foregående ord) inntil den første startkoden lokaliseres. Ved dette punkt vil rutinen gå fra boks 154 til boks 164 der startkoden ID dekodes. Dette vil identifisere kategorien av informasjon som etterfølger startkoden, og spaltertilstanden vil så bli tatt i henhold til dette som angitt ved boks 166. Ved boks 168 foretas en bestemmelse hvorvidt det neste feltet av data er data som har fast lengde. Dersom dette er tilfellet, settes feltlengden ved boks 170 slik at den neste skiftlengden kan beregnes som angitt ved boks 172.
Ved boks 174 (fig. 5b) foretas en bestemmelse med hensyn til hvorvidt den nye skiftlengden overskrider en verdi lik 32. Dersom dette er tilfellet vil registere 74 og 76 bli klargjort til å motta nye data. FIFO 72 vil også bli klargjort under den påfølgende spaltersyklus til å presentere nye data på inngangen til register 74.
Ved boks 178 blir f lerskif tregisteret skiftet med den nye skiftlengden og flerskiftregisterets utmatning blir så dekodet, slik som angitt ved boks 180. Ved boks 182 foretas en bestemmelse med hensyn til hvorvidt noen av undersystemene som mottar data fra spalteren har anmodet spalteroperasjonen om å bli midlertidig satt på holdetilstand. Eksempelvis kan Huffman-dekoder 52 midlertidig trenge å stoppe spalteren for å tillate et kodeord å bli dekodet til mer enn en koeffisient. For å gjøre dette vil et blokkdataanmodningssignal bli formidlet fra Huffman-dekoderen til dekoderen 80 i videosyntaksspalteren via håndtrykksinngang 96. Dersom en holdetilstand anmodes, overvåker boks 184 situasjonen for å bestemme når en gjenopptagelsekommando (eller frigjøring av holdekom-mandoen) mottas. Når dette skjer, går rutinen tilbake til boks 182 og når ingen ytterligere holdetilstander er tilstede, foretas en bestemmelse ved boks 186 med hensyn til hvorvidt noen feil har opptrådt som ville kreve fornyet innhenting av bitstrømmen. Dersom eksempelvis sekvensen av data er gått tapt, slik at en neste startkode ikke kan lokaliseres, vil det være nødvendig å gå tilbake til boks 152 for å oppnå en initiell startkod, slik at spalting av bitstrømmen kan begynne på ny. Således tilveiebringer boks 186 en unnsiippingsvei i tilfellet av at påfølgende startkoder i den komprimerte bitstrøm ikke er lokalisert når det forventes. Ved boks 188 foretas en bestemmelse med hensyn til hvorvidt en ny startkode er blitt mottatt når forventet under normal behandling av bitstrømmen. Dersom dette er tilfellet, dekodes startkodeidentifikasjonen som angitt ved boks 190, og rutinen går tilbake til boks 166 (fig. 5a) der den nye spaltertilstanden som dikteres av den dekodede startkode ID settes.
I tilfellet av at data som har variabel lengde påtreffes I bitstrømmen, vil rutinen flyte fra boks 168 til boks 192 (fig. 5b), der en bestemmelse foretas med hensyn til hvorvidt en blokks kodeord som har variabel lengde er tilstede. Dersom dette er tilfellet, vil skiftlengden bli inkrementert av blokk VLC-innmatningen til velger 84 fra Huffman-dekoder 52. Ellers vil makroblokkdata som har variabel lengde være tilstede og skiftlengden vil bli inkrementert med MB VLC-lengden, slik som angitt ved boks 194. Ved slutten av hver blokk vil Huffman-dekoderen 52 gi en EOB-lengde til adderer 86, slik som angitt ved boks 198, slik at skiftlengden i tillegg kan inkrementeres ved slutten av blokklengden, slik som vist ved boks 200. Prosessen fortsetter til boks 174 for å klargjøre hver påfølgende del av data mellom startkoder som skal på riktig måte spaltes og føres videre til passende undersystem.
Det vil nå forstås at den foreliggende oppfinnelse tilveiebringer en syntaksspalter for utspalting av de felter som er av interesse fra for eksempel MPEG-2 eller DigiCipher II syntaksen. Kodefelt som har variabel lengde utskilles med tilbakekobling fra VLC-dekoderen for å bestemme slutten av VLC-feltet. Spalteren har en spaltertilstandsbuss og en datautmatningsbuss. Samtlige relevante områder av syntaksen er ensidig definert ved hjelp av den eksisterende spaltertilstand, hvilket gjør det lett for hvert delsystem som mottar data fra spalteren å bestemme når et felt av interesse for den er tilstede. Hvert undersystem dekoder den eksisterende spaltertilstand og oppdaterer sine registere som følge derav.
Selv om oppfinnelsen er blitt beskrevet i forbindelse med en særlig utførelsesform av denne, vil fagfolk forstå at tallrike tilpasninger og modifikasjoner kan foretas på denne uten å avvike fra ideen og omfanget ved oppfinnelsen slik det fremgår av patentkravene. Med "spalter" forstås det engelske uttrykket "parser". Med "spalting" forstås det engelske uttrykk "parsing".

Claims (13)

1. Videosyntaksspalter som inngår i en videodekompresjonsprosessor, karakterisert ved: en inngang for å motta en komprimert bitstrøm som har data som skal spaltes, midler for å spalte nevnte data fra nevnte komprimerte bitstrøm, midler for å dekode startkoder som befinner seg i de data som er spaltet fra nevnte komprimerte bitstrøm, midler som reagerer på en startkode dekodet av nevnte dekodingsmidler for å initiere en bestemt spaltertilstand som tilsvarer nevnte startkode, en spaltertilstandsutgang for å formidle nevnte spaltertilstand til et flertall av undersystemer i nevnte videodekompresjonsprosessor, og en datautgang for å formidle spaltede data fra nevnte spaltingsmidler til en databuss som betjener nevnte flertall av undersystemer, der hvert av nevnte flertall av undersystemer overvåker nevnte spaltertilstand for å bestemme hvilke spaltede data på nevnte databuss, om enn noen, er beregnet for det undersystemet, slik at undersystemet kan hente inn de spaltede data som er beregnet for dette.
2. Videosyntaksspalter som angitt i krav 1, karakterisert ved at spaltingsmidlene omfatter: skiftmidler koblet til å motta og skifte data fra nevnte komprimerte bitstrøm, idet nevnte skiftemidler reagerer på en skiftlengdekommando for utmatning av suksessive deler av nevnte komprimerte bitstrøm til nevnte dekodingsmidler.
3. Videosyntaksspalter som angitt i krav 2, karakter i-sert ved at nevnte skiftmidler omfatter et flerskiftregister.
4. Videosyntaksspalter som angitt i krav 2 eller 3, karakterisert ved at nevnte suksessive deler av nevnte komprimerte bitstrøm også utmates fra nevnte datautgang.
5. Videosyntaksspalter som angitt i krav 3, karakterisert ved at nevnte flerskiftsregister mottar nevnte komprimerte bitstrømdata fra første og andre registere koblet til innganger på nevnte flerskiftsregister, idet nevnte første register reagerer på et klargjøringssignal for mottagelse av nevnte komprimerte bitstrømdata fra en kilde og nevnte andre register reagerer på nevnte klargjøringssignal for mottagelse av suksessive deler av nevnte komprimerte bitstrømdata fra nevnte første register, idet nevnte klargjøringssignal tilveiebringes når nevnte skiftlengdekommando når en forutbestemt verdi.
6. Videosyntaksspalter som angitt i krav 5, karakterisert ved: at nevnte suksessive deler av komprimerte bitstrømdata som tilveiebringes for nevnte dekodingsmidler hver har N biters lengde, at nevnte første og andre registere hver er N-bit registere, og at nevnte flerskiftsregister skifter inntil N biter av gangen.
7. Videosyntaksspalter som angitt i et av kravene 2-6, karakterisert ved: at nevnte skiftlengdekommando er en kumulativ verdi som inkrementeres av en feltlengde under suksessive spaltings-sykluser for å styre antallet av biter som nevnte flerskiftsregister skiftes med hver syklus, at nevnte feltlengde dikteres av nevnte spaltertilstand under hver syklus, og at midler er tilveiebragt for å avkorte nevnte kumulative verdi for å tilveiebringe et sett av minst signifikante biter for bruk som nevnte skiftlengdekommando og en mer signifikant bit for tilveiebringelse av nevnte klargjøringssignal.
8. Videosyntaksspalter som angitt i krav 7, karakterisert ved at nevnte komprimerte bitstrøm innbefatter både ord som har fast lengde og kodeord med variabel lengde (VLC) som skal spaltes, idet nevnte spalter dessuten omfatter: en velger som har en første inngang for å motta nevnte feltlengde og minst en andre inngang for mottagelse av en VLC-lengde, og midler som reagerer på nevnte spaltertilstand for aktivering av nevnte velger til å utmate nevnte feltlengde for inkrementering av nevnte kumulative verdi under sykluser når ord med fast lengde skal spaltes fra nevnte bitstrøm og for å aktivere nevnte velger for å utmate en VLC-lengde for inkrementering av nevnte kumulative verdi under sykluser når kodeord med variabel lengde skal spaltes fra nevnte bitstrøm.
9. Videosyntaksspalter som angitt i krav 8, karakterisert ved dessuten å omfatte midler for samtidig å inkrementere nevnte kumulative verdi med en VLC-lengde og en . slutt av blokklengde ved slutten av en blokk av data som har variabel lengde og som spaltes fra nevnte komprimerte bitstrøm.
10. Videosyntaksspalter som angitt i et av kravene 2-9, karakterisert ved at nevnte suksessive deler av nevnte komprimerte bitstrøm også utmates fra nevnte datautgang.
11. Videosyntaksspalter som angitt i et av kravene 2-10, karakterisert ved at dessuten å omfatte régistermidler som reagerer på et klargjøringssignal for mottagelse av nevnte komprimerte bitstrømdata fra en kilde og for å føre disse til nevnte skiftmidler, idet nevnte klargjøringssignal tilveiebringes når nevnte skiftlengdekommando når en forutbestemt verdi.
12. Videosyntaksspalter som angitt i krav 11, karakterisert ved at dessuten å omfatte en taktflytbuffer koblet mellom nevnte kilde og nevnte régistermidler, idet nevnte taktflytbuffer reagerer på nevnte klargjøringssignal for å bufferbehandle suksessive deler av nevnte komprimerte bitstrømdata fra nevnte kilde.
13. Videosyntaksspalter som angitt i et hvilket som helst av de foregående krav, karakterisert ved at nevnte dekodingsmidler fortsetter å dekode dataene som spaltes fra nevnte datastrøm etter at nevnte startkode er blitt dekodet for å oppdatere nevnte spaltertilstand under suksessive spaltersykluser inntil ny startkode opptrer.
NO954261A 1994-10-26 1995-10-25 Syntaksspalter for videodekompresjonsprosessor NO309790B1 (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/329,500 US5566089A (en) 1994-10-26 1994-10-26 Syntax parser for a video decompression processor

Publications (3)

Publication Number Publication Date
NO954261D0 NO954261D0 (no) 1995-10-25
NO954261L NO954261L (no) 1996-04-29
NO309790B1 true NO309790B1 (no) 2001-03-26

Family

ID=23285709

Family Applications (1)

Application Number Title Priority Date Filing Date
NO954261A NO309790B1 (no) 1994-10-26 1995-10-25 Syntaksspalter for videodekompresjonsprosessor

Country Status (11)

Country Link
US (1) US5566089A (no)
EP (1) EP0710027B1 (no)
JP (1) JP2829262B2 (no)
KR (1) KR100341055B1 (no)
AU (1) AU688585B2 (no)
CA (1) CA2159866C (no)
DE (1) DE69521102T2 (no)
DK (1) DK0710027T3 (no)
ES (1) ES2158024T3 (no)
NO (1) NO309790B1 (no)
TW (1) TW348921U (no)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69229338T2 (de) 1992-06-30 1999-12-16 Discovision Associates, Irvine Datenpipelinesystem
US6067417A (en) 1992-06-30 2000-05-23 Discovision Associates Picture start token
US6047112A (en) 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US5809270A (en) 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6112017A (en) 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6263422B1 (en) 1992-06-30 2001-07-17 Discovision Associates Pipeline processing machine with interactive stages operable in response to tokens and system and methods relating thereto
US5768561A (en) 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US5784631A (en) 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
US5805914A (en) 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5861894A (en) 1993-06-24 1999-01-19 Discovision Associates Buffer manager
US5878273A (en) 1993-06-24 1999-03-02 Discovision Associates System for microprogrammable state machine in video parser disabling portion of processing stages responsive to sequence-- end token generating by token generator responsive to received data
JP3302229B2 (ja) 1994-09-20 2002-07-15 株式会社リコー 符号化方法、符号化/復号方法及び復号方法
US6549666B1 (en) 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US5881176A (en) * 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US6873734B1 (en) 1994-09-21 2005-03-29 Ricoh Company Ltd Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US5771075A (en) * 1994-12-08 1998-06-23 Lg Electronics Inc. Audio/video synchronizer
KR960036641A (ko) * 1995-03-21 1996-10-28 김광호 저속의 비디오비트열을 복호하는 고속용 복호화장치
US5920572A (en) * 1995-06-30 1999-07-06 Divicom Inc. Transport stream decoder/demultiplexer for hierarchically organized audio-video streams
JP3450553B2 (ja) * 1995-10-31 2003-09-29 東芝マイクロエレクトロニクス株式会社 可変長符号復号装置
KR100215439B1 (ko) * 1996-02-08 1999-08-16 윤종용 고속의 데이타 구문분석 제어회로
US5706002A (en) * 1996-02-21 1998-01-06 David Sarnoff Research Center, Inc. Method and apparatus for evaluating the syntax elements for DCT coefficients of a video decoder
US5768537A (en) * 1996-02-22 1998-06-16 International Business Machines Corporation Scalable MPEG2 compliant video encoder
US6018369A (en) * 1996-03-21 2000-01-25 Samsung Electronics Co., Ltd. Video decoder with closed caption data on video output
US5801782A (en) * 1996-03-21 1998-09-01 Samsung Information Systems America Analog video encoder with metered closed caption data on digital video input interface
US6002441A (en) * 1996-10-28 1999-12-14 National Semiconductor Corporation Audio/video subprocessor method and structure
US6226291B1 (en) * 1996-11-01 2001-05-01 Texas Instruments Incorporated Transport stream packet parser system
US6512775B1 (en) 1996-11-08 2003-01-28 The Trustees Of Columbia University In The City Of New York Method and apparatus for a programmable bitstream parser for audiovisual and generic decoding systems
WO1998021889A1 (en) * 1996-11-08 1998-05-22 The Trustees Of Columbia University In The City Of New York Methods and apparatus for a programmable bitstream parser for audiovisual and generic decoding systems
US5920353A (en) * 1996-12-03 1999-07-06 St Microelectronics, Inc. Multi-standard decompression and/or compression device
US6160587A (en) * 1997-01-16 2000-12-12 Motorola, Inc. Waveform generator for insertion of data into digital television signals
US6735253B1 (en) 1997-05-16 2004-05-11 The Trustees Of Columbia University In The City Of New York Methods and architecture for indexing and editing compressed video over the world wide web
US6115422A (en) * 1997-09-26 2000-09-05 International Business Machines Corporation Protocol and procedure for time base change in an MPEG-2 compliant datastream
US6356567B2 (en) 1997-09-26 2002-03-12 International Business Machines Corporation Embedded clock recovery and difference filtering for an MPEG-2 compliant transport stream
US6078594A (en) * 1997-09-26 2000-06-20 International Business Machines Corporation Protocol and procedure for automated channel change in an MPEG-2 compliant datastream
US6229801B1 (en) 1997-09-26 2001-05-08 International Business Machines Corporation Delivery of MPEG2 compliant table data
US6072771A (en) * 1997-09-26 2000-06-06 International Business Machines Corporation Detection of errors in table data
US6275507B1 (en) 1997-09-26 2001-08-14 International Business Machines Corporation Transport demultiplexor for an MPEG-2 compliant data stream
US6181706B1 (en) 1997-09-26 2001-01-30 International Business Machines Corporation Common buffer for multiple streams and control registers in an MPEG-2 compliant transport register
US6088357A (en) * 1997-09-26 2000-07-11 International Business Machines Corporation Auxiliary transport assist processor especially for an MPEG-2 compliant decoder
US6091772A (en) * 1997-09-26 2000-07-18 International Business Machines, Corporation Black based filtering of MPEG-2 compliant table sections
US6195403B1 (en) 1997-09-26 2001-02-27 International Business Machines Corporation Pulse generator for a voltage controlled oscillator
JP3573759B2 (ja) * 1997-10-23 2004-10-06 三菱電機株式会社 画像復号化装置、画像符号化装置、画像通信システム、符号化ビットストリーム変換装置及び画像復号化方法
KR100257191B1 (ko) * 1997-12-31 2000-05-15 구자홍 움직임 벡터 디코더
WO1999067883A2 (en) * 1998-06-25 1999-12-29 Equator Technologies, Inc. Processing circuit and method for variable-length coding and decoding
US6366617B1 (en) 1998-10-09 2002-04-02 Matsushita Electric Industrial Co., Ltd. Programmable filter for removing selected user data from an MPEG-2 bit stream
US6215526B1 (en) * 1998-11-06 2001-04-10 Tivo, Inc. Analog video tagging and encoding system
US7143434B1 (en) 1998-11-06 2006-11-28 Seungyup Paek Video description system and method
US6414996B1 (en) 1998-12-08 2002-07-02 Stmicroelectronics, Inc. System, method and apparatus for an instruction driven digital video processor
JP3169009B2 (ja) * 1999-02-17 2001-05-21 日本電気株式会社 Mpegデコーダ、mpegシステムデコーダ及びmpegビデオデコーダ
EP1276331A3 (en) * 1999-04-01 2005-06-01 Ravisent Technologies, Inc. Method for preventing dual-step half-pixel motion compensation accumulation errors in prediction-rich MPEG-2 sequences
US6567557B1 (en) 1999-12-10 2003-05-20 Stmicroelectronics, Inc. Method for preventing dual-step half-pixel motion compensation accumulation errors in prediction-rich MPEG-2 sequences
US7885340B2 (en) * 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
MY130203A (en) * 1999-05-06 2007-06-29 Sony Corp Methods and apparatus for data processing, methods and apparatus for data reproducing and recording media
EP1051041A1 (en) * 1999-05-07 2000-11-08 Deutsche Thomson-Brandt Gmbh Method for searching start codes
US7168069B1 (en) 2000-07-12 2007-01-23 Stmicroelectronics, Inc. Dynamic generation of multimedia code for image processing
US6950558B2 (en) 2001-03-30 2005-09-27 Ricoh Co., Ltd. Method and apparatus for block sequential processing
US6963612B2 (en) * 2001-08-31 2005-11-08 Stmicroelectronic, Inc. System for detecting start codes in MPEG video streams and method of operating the same
US7089541B2 (en) * 2001-11-30 2006-08-08 Sun Microsystems, Inc. Modular parser architecture with mini parsers
AU2002351310A1 (en) 2001-12-06 2003-06-23 The Trustees Of Columbia University In The City Of New York System and method for extracting text captions from video and generating video summaries
EP2403263A3 (en) * 2002-04-26 2012-01-25 Sony Corporation Encoding device and method, decoding device and method, editing device and method, recoding medium, and program
US20040181811A1 (en) * 2003-03-13 2004-09-16 Rakib Selim Shlomo Thin DOCSIS in-band management for interactive HFC service delivery
WO2005006404A2 (en) * 2003-07-09 2005-01-20 Broadlogic Network Technologies Inc. Method and system for providing a high speed multi-stream mpeg processor
US20050036046A1 (en) * 2003-08-14 2005-02-17 Nokia Corporation Method of or device for processing image data, a processed image data format, and a method of or device for displaying at least one image from the processed image data
US7606313B2 (en) * 2004-01-15 2009-10-20 Ittiam Systems (P) Ltd. System, method, and apparatus for error concealment in coded video signals
US8929458B2 (en) * 2004-02-05 2015-01-06 Broadcom Corporation Compressed structure for slice groups in start code table
CN101077006A (zh) 2004-11-19 2007-11-21 Tivo股份有限公司 用于先前播放内容的安全传输的方法和设备
WO2006096612A2 (en) 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
CN101213754B (zh) * 2005-05-13 2013-11-13 高通股份有限公司 用于改进的多媒体解码器的方法和设备
US7873982B2 (en) * 2006-06-22 2011-01-18 Tivo Inc. Method and apparatus for creating and viewing customized multimedia segments
US7661121B2 (en) 2006-06-22 2010-02-09 Tivo, Inc. In-band data recognition and synchronization system
US8261300B2 (en) 2006-06-23 2012-09-04 Tivo Inc. Method and apparatus for advertisement placement in a user dialog on a set-top box
KR101372418B1 (ko) * 2007-10-19 2014-03-12 (주)휴맥스 비트스트림 디코딩 장치 및 방법
WO2009126785A2 (en) 2008-04-10 2009-10-15 The Trustees Of Columbia University In The City Of New York Systems and methods for image archaeology
WO2009155281A1 (en) 2008-06-17 2009-12-23 The Trustees Of Columbia University In The City Of New York System and method for dynamically and interactively searching media data
US8671069B2 (en) 2008-12-22 2014-03-11 The Trustees Of Columbia University, In The City Of New York Rapid image annotation via brain state decoding and visual pattern mining
US20130279882A1 (en) 2012-04-23 2013-10-24 Apple Inc. Coding of Video and Audio with Initialization Fragments

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1240063A (en) * 1986-02-25 1988-08-02 Milan Skubnik Digital companding circuit
GB8722394D0 (en) * 1987-09-23 1987-10-28 British Telecomm Video coder
US5091782A (en) 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
US5068724A (en) 1990-06-15 1991-11-26 General Instrument Corporation Adaptive motion compensation for digital television
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
US5093720A (en) 1990-08-20 1992-03-03 General Instrument Corporation Motion compensation for interlaced digital television signals
US5057916A (en) 1990-11-16 1991-10-15 General Instrument Corporation Method and apparatus for refreshing motion compensated sequential video images
US5111292A (en) * 1991-02-27 1992-05-05 General Electric Company Priority selection apparatus as for a video signal processor
US5235419A (en) 1991-10-24 1993-08-10 General Instrument Corporation Adaptive motion compensation using a plurality of motion compensators
US5233348A (en) * 1992-03-26 1993-08-03 General Instrument Corporation Variable length code word decoder for use in digital communication systems
US5289276A (en) * 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
US5231486A (en) * 1992-07-27 1993-07-27 General Electric Company Data separation processing in a dual channel digital high definition television system
US5452006A (en) * 1993-10-25 1995-09-19 Lsi Logic Corporation Two-part synchronization scheme for digital video decoders
US5583562A (en) * 1993-12-03 1996-12-10 Scientific-Atlanta, Inc. System and method for transmitting a plurality of digital services including imaging services
JP3149303B2 (ja) * 1993-12-29 2001-03-26 松下電器産業株式会社 デジタル画像符号化方法及びデジタル画像復号化方法

Also Published As

Publication number Publication date
DE69521102T2 (de) 2002-01-03
EP0710027B1 (en) 2001-05-30
US5566089A (en) 1996-10-15
DE69521102D1 (de) 2001-07-05
KR100341055B1 (ko) 2002-12-05
NO954261L (no) 1996-04-29
ES2158024T3 (es) 2001-09-01
NO954261D0 (no) 1995-10-25
JP2829262B2 (ja) 1998-11-25
EP0710027A3 (en) 1999-06-23
DK0710027T3 (da) 2001-09-17
AU3435595A (en) 1996-05-09
EP0710027A2 (en) 1996-05-01
TW348921U (en) 1998-12-21
AU688585B2 (en) 1998-03-12
KR960016578A (ko) 1996-05-22
JPH08214312A (ja) 1996-08-20
CA2159866A1 (en) 1996-04-27
CA2159866C (en) 2001-06-12

Similar Documents

Publication Publication Date Title
NO309790B1 (no) Syntaksspalter for videodekompresjonsprosessor
US5517250A (en) Acquisition of desired data from a packetized data stream and synchronization thereto
KR100380709B1 (ko) 디지털비디오신장프로세서및디지털비디오신장프로세서의디램을매핑하기위한방법
US5654805A (en) Multiplexing/demultiplexing method for superimposing sub-images on a main image
AU691043B2 (en) Pixel interpolation filters for video decompression processor
EP0697794B1 (en) Method and apparatus for efficient addressing of DRAM in a video decompression processor
US5668599A (en) Memory management for an MPEG2 compliant decoder
US5502493A (en) Variable length data decoder for use with MPEG encoded video data
US5398072A (en) Management of channel buffer in video decoders
USRE37620E1 (en) Bandwidth efficient communication of user data in digital television data stream
WO2007119171A2 (en) Video receiver providing video attributes with video data
JP2009111708A (ja) 同期配信システム、同期再生システム及び同期配信再生システム

Legal Events

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

Free format text: LAPSED IN APRIL 2002