NO339756B1 - Robust dekoder - Google Patents
Robust dekoder Download PDFInfo
- Publication number
- NO339756B1 NO339756B1 NO20075776A NO20075776A NO339756B1 NO 339756 B1 NO339756 B1 NO 339756B1 NO 20075776 A NO20075776 A NO 20075776A NO 20075776 A NO20075776 A NO 20075776A NO 339756 B1 NO339756 B1 NO 339756B1
- Authority
- NO
- Norway
- Prior art keywords
- signal
- hiding
- available
- frame
- technique
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 168
- 238000012545 processing Methods 0.000 claims description 31
- 230000005236 sound signal Effects 0.000 claims description 19
- 230000000873 masking effect Effects 0.000 claims description 14
- 230000001419 dependent effect Effects 0.000 claims description 12
- 230000009467 reduction Effects 0.000 claims description 4
- 238000005562 fading Methods 0.000 claims 1
- 230000003044 adaptive effect Effects 0.000 description 39
- 230000005284 excitation Effects 0.000 description 38
- 239000000523 sample Substances 0.000 description 22
- 239000000872 buffer Substances 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000003786 synthesis reaction Methods 0.000 description 12
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000032683 aging Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000013139 quantization Methods 0.000 description 8
- 230000001934 delay Effects 0.000 description 7
- 239000012723 sample buffer Substances 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000001260 vocal cord Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/04—Time compression or expansion
- G10L21/043—Time compression or expansion by changing speed
- G10L21/045—Time compression or expansion by changing speed using thinning out or insertion of a waveform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
- H04N19/895—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Circuits Of Receivers In General (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
Teknisk område
Beskrevne verktøy og teknikker vedrører audiokodeker og særlig teknikker for å hanskes med forsinket eller tapt kodet lydinformasjon (audioinformasjon).
Bakgrunn
Med fremkomsten av digitale trådløse telefonnettverk, sanntids overføring av lyd over Internett og Internett-telefoni, har digital prosessering og levering av tale blitt alminnelig. Ingeniører bruker et mangfold av teknikker for å prosessere tale effektivt samtidig som kvaliteten beholdes. For å forstå disse teknikker hjelper det å forstå hvordan lydinformasjon representeres og behandles i en datamaskin.
I. Representasjon av lydinformasjon i en datamaskin
En datamaskin prosesserer lydinformasjon som en serie av tall som representerer lyden. Et enkelt tall kan representere et lydsampel, hvilket er en amplitudeverdi på et bestemt tidspunkt. Flere faktorer påvirker kvaliteten av lyden, inkludert sampeldybde og samplingsrate.
Sampeldybde (eller presisjon) angir det område av tall som brukes til å representere et sampel. Flere mulige verdier for hvert sampel gir typisk utgang med høyere kvalitet, fordi mer subtile variasjoner i amplituden kan representeres. Et 8-bit sampel har 256 mulige verdier, mens et 16-bit sampel har 65.536 mulige verdier.
Samlingsraten (vanligvis målt som antallet sampler per sekund) påvirker også kvaliteten. Jo høyere samplingsraten er, jo høyere er kvaliteten, fordi flere lydfre-kvenser kan representeres. Enkelte vanlige samplingsrater er 8.000, 11.025, 22.050, 32.000, 44.100, 48.000 og 96.000 sampler/sekund (Hz). Tabell 1 viser flere formater av lyd med forskjellige kvalitetsnivåer, sammen med korresponderende rå-bit ratekostnader.
Som tabell 1 viser er kostnaden for lyd av høy kvalitet høy bit rate. Lydinformasjon av høy kvalitet forbruker store mengder av datamaskinlagring og overførings-kapasitet. Mange datamaskiner og datamaskinnettverk mangler ressursene for å prosessere rå digital lyd. Kompresjon (også kalt koding (encoding) eller (coding)) reduserer kostnaden med lagring og overføring av lydinformasjon ved konvertering av informasjonen til en form med lavere bit rate. Kompresjon kan være tapløs (hvor kvalitet ikke lider) eller tapsbeheftet (hvor kvalitet lider, men reduksjon i bit rate fra etterfølgende tapløs kompresjon er mer dramatisk). Dekompresjon (også kalt dekoding) ekstraherer en rekonstruert versjon av den opprinnelige informasjon fra den komprimerte form. En kodek er et koder/dekoder-system.
II. Talekodere og -dekodere
Et mål med lydkompresjon er å digitalt representere lydsignaler for å tilveiebringe maksimum sig nal kvalitet for en gitt mengde bits. Sagt på en annen måte er dette mål å representere lydsignalene med færrest bits for et gitt nivå av kvalitet. Andre mål, så som robusthet mot overføringsfeil og begrensning av den samlede forsinkelse på grunn av koding/overføring/dekoding gjelder i mange scenarioer.
Forskjellige typer av lydsignaler har forskjellige karakteristika. Musikk karakte-riseres ved store områder av frekvenser og amplituder, og inkluderer ofte to eller flere kanaler. På den annen side, tale erkarakterisertav mindre områder av frekvenser og amplituder, og blir vanligvis representert i en enkelt kanal. Visse kodeker og prosesseringsteknikker er tatt i bruk for musikk og generell lyd; andre kodeker og prosesseringsteknikker er tatt i bruk for tale.
En type av konvensjonell talekodek bruker lineær prediksjon for å oppnå kompresjon. Talekodingen inkluderer flere trinn. Koderen finner og kvantiserer koeffisienter for et lineært prediksjonsfilter, som brukes til å predikere sampelverdier som lineære kombinasjoner av forutgående sampelverdier. Et restsignal (representert som et "eksitasjons"-signal) viser deler av det opprinnelige signal som ikke predikeres nøyaktig av filtreringen. På enkelte trinn bruker talekodeken forskjellige kompresjonsteknikker for stemte segmenter (karakterisertav stemmebåndvibrasjon), ustemte segmenter og stille segmenter, siden forskjellige typer av tale har forskjellige karakteristika. Stemte segmenter oppviser typisk svært repeterende stemmemønstre, selv i restdomenen. For stemte segmenter utfører dekoderen ytterligere kompresjon ved sammenlikning av det inneværende restsignal med forutgående restsykluser og koding av det inneværende restsignal i form av forsinkelses- eller etterslepsinforma-sjon i forhold til de forutgående sykluser. Koderen håndterer andre uoverens-stemmelser mellom det opprinnelige signal og den predikerte, kodede representasjon (fra den lineære prediksjons- og forsinkelsesinformasjon) ved bruk av spesielt designede kodebøker.
Selv om enkelte talekodeker som er beskrevet ovenfor har god samlet ytelse for mange applikasjoner, har de flere ulemper. Særlig kommer flere ulemper til over-flaten når talekodekene brukes i forbindelse med dynamiske nettverksressurser. I slike scenarioer kan kodet tale bli tapt på grunn av den midlertidige båndbredde-knapphet eller andre problemer.
A. Ineffektive skjulingsteknikker
Når en eller flere pakker med kodet tale mangler, så som når de er tapt, forsinket, forringet eller på annen måte gjort ubrukbar i transitt eller et annet sted, for-søker dekodere ofte å skjule de manglende pakker på en måte. For eksempel, enkelte dekodere gjentar simpelthen pakker som allerede har blitt mottatt. Hvis det er signifikante tap av pakker kan denne teknikken imidlertid hurtig resultere i degradert kvalitet av den dekodede talerutgang.
WO 02/37475 A1 vedrører en fremgangsmåte og et system for å skjule feil i rammer av en talesekvens. Dette gjøres ved å erstatte visse parametere i dårlige rammer med tilsvarende parametere i slike rammer som tidligere ble oppdaget eller påtruffet, hvor parameterne er knyttet til såkalte parametere med lineær prediktiv koding (LTP). Dette gjøres kun for stemte rammer. Hvis ustemte rammer er påtruffet, blir parametere erstattet av verdier fra en LTP-historie for å skjule feil.
WO 00/63882 omhandler en fremgangsmåte og et system for å skjule pakketap i taleopptak. Ifølge denne publikasjonen blir det bestemt hvorvidt rammer er tapt eller i en dårlig tilstand. Det å skjule pakketap løses ved replikering av bølgeformer for å syntetisere manglende tale. Den foreslåtte løsning er rettet mot taleopptak, der kun taleopptakenes egenskaper er beskrevet i minste detalj.
Enkelte kodeker bruker mer sofistikerte skjulingsteknikker, så som bølgeform likhet overlapp-adder metoden (wavefrom similarity overlap-add method, "WSOLA"). Denne teknikken forlenger det dekodede lydsignal for å skjule manglende pakker ved generering av nye pitch-sykluser gjennom vektede gjennomsnitt av eksisterende pitch-sykluser. Denne fremgangsmåte kan være mer effektiv for skjuling av manglende pakker enn kun repetering av tidligere pakker. Den behøver imidlertid ikke å være ideell for alle situasjoner. Dessuten kan den produsere uønskede lydeffekter (så som en mekanisk eller ringende lyd), hvis den brukes til å forlenge et signal i for lang tid.
I tillegg avhenger mange rammer av minne om dekodede karakteristika for tidligere rammer (så som eksitasjonssignalhistorie) for dekoding. Når slik minne ikke eksisterer (som når pakkene som ville ha blitt brukt til å produsere minnet er tapt, forsinket, osv), kan signalkvaliteten bli forringet selv for de mottatte rammer som følger etter manglende rammer.
B. Ineffektive eller uvirksomme ønskede pakkeforsinkelsesberegninger
Når pakker med kodet lydinformasjon transporteres til en dekoderapplikasjon, kan hver pakke oppleve en forskjellig forsinkelse, for eksempel på grunn av nettverks-variasjoner. Dette kan også resultere i pakker som ankommer i en forskjellig rekkefølge enn de ble sendt. En applikasjon eller dekoder kan beregne forsinkelses-statistikk for å bestemme en ønsket dekoder bufferforsinkelse som forventes å være lang nok til å tillate at et tilstrekkelig antall av pakker ankommer ved dekoderen i tide til å bli dekodet og brukt. Et motvirkende anliggende kan selvsagt være samlet forsinkelse i systemet, særlig for sanntids, interaktive applikasjoner, så som telefoni.
En løsningsmåte for å beregne den optimale forsinkelse er å se på den maksimale forsinkelse for tidligere pakker og bruke den forsinkelsesverdien som en veileder. Forsinkelsen til en pakke bestemmes typisk ved beregning av differansen mellom et sendt-tidsstempel som er påført på kodersiden når pakken sendes og et mottatt-tidsstempel som påføres på dekodersiden når pakken mottas. Enkelte ganger kan det imidlertid finnes slengere, hvilket forårsaker at systemet tilpasses til urepresentative pakker. I tillegg er det enkelte ganger bedre å la noen få pakker ankomme for sent (og bli utelatt) enn å påtvinge en forsinkelse som er lang nok til å motta disse sene slenger-pakkene.
Et alternativ er å beregne den ønskede forsinkelse basert på formler så som kjøring av gjennomsnittsberegninger og kjøring av variansberegninger. Mange para metere må imidlertid optimeres i slike beregninger, og det er vanskelig å finne den riktige avveining mellom beregninger og responshastighet på den ene side, og basering av beregningene på en representativ populasjon av historieverdier på den annen side.
En annen løsningsmåte er direkte å analysere pakkeforsinkelsesfordelingen. For eksempel kan det opprettholdes et histogram over pakkeforsinkelser. Bredden av et bånd i forsinkelsestidshistogrammet representerer den ønskede nøyaktighet som den optimale forsinkelse vil bli beregnet med. Redusering av båndstørrelsen forbedrer nøyaktigheten. Formen av histogrammet speiler tilnærmet den underliggende pakkeforsinkelsesfordeling.
Når en ny pakke ankommer avbildes pakkeforsinkelsen på det korresponderende bånd og tellingen av de pakker som faller i dette båndet inkrementeres. For å reflektere alderen til enkelte gamle pakker, blir tellinger i alle andre bånd skalert ned i en prosess som kalles "aldring". For å finne denne nye ønskede forsinkelse setter dekoderen en ønsket tapsrate. Typiske verdier varierer mellom én prosent og fem prosent. Histogrammet analyseres for å bestemme den verdi av den ønskede forsinkelse som er nødvendig for å oppnå det ønskede tap. Ett problem med denne løsningsmåte er at enkelte parametere må avstemmes, så som båndbredde og aldringsfaktorer. I tillegg blir gamle pakker behandlet på lignende måte i aldringspro-sessen, og aldringsløsningsmåten spiller i seg selv en altfor vesentlig rolle i den samlede ytelse til teknikken. I tillegg kan det opptre en klokkedriftsituasjon. Klokkedrift skjer når klokkehastighetene til forskjellige innretninger ikke er den samme. Hvis klokkedrift skjer mellom innretninger på kodersiden som anvender sendt-tidsstempler og innretninger på dekodersiden som anvender mottatt-tidsstempler, har den samlede forsinkelse enten en positiv eller en negativ trend. Dette kan forårsake at histogrammet drifter langs forsinkelsestidslinjen selv når histogrammet skulle være statisk.
Sammenfatning
Hovedtrekkene ved oppfinnelsen fremgår av det selvstendige patentkrav. Ytterligere trekk ved oppfinnelsen er angitt i de uselvstendige krav.
Sammenfattende er den detaljerte beskrivelse rettet mot forskjellige teknikker og verktøy for lydkodeker, og spesifikt mot verktøy og teknikker som er relatert til teknikker for å hanskes med lydinformasjon som av en eller annen årsak mangler. Beskrevne utførelser implementerer en eller flere av de beskrevne teknikker og verktøy, inkludert, men ikke begrenset til, det følgende: I ett aspekt, hvis en eller flere manglende rammer påtreffes under prosessering av en bit strøm for et lydsignal, så velges en skjulingsteknikk fra flere tilgjengelige signalavhengige skjulingsteknikker som er basert i det minste delvis på en eller flere faktorer. Den valgte skjulingsteknikk gjennomføres, og et resultat mates ut.
I et annet aspekt, ved påtreffing av en eller flere rammer som mangler fra en bit strøm for et lydsignal, genereres et skjulingssignal som er basert i det minste delvis på pitch-sykluser i en eller flere forangående rammer, inkludert introdusering av pitch-dirring.
I et annet aspekt påtreffes en eller flere rammer som mangler fra en bit strøm for et lydsignal, og en skjulingsteknikk produseres. En etterfølgende ramme som i det minste delvis er avhengig av informasjon fra den ene eller de flere manglende rammer for dekoding påtreffes. Substituttinformasjon fra skjulingssignalet produseres og man setter sin lit til denne istedenfor informasjonen fra den ene eller de flere manglende rammer, for å dekode den etterfølgende ramme.
I et annet aspekt prosesseres en bit strøm for et lydsignal. Når en eller flere manglende rammer fra bit strømmen påtreffes, så inkluderer prosesseringen generering av et skjulingssignal som inkluderer et forlengelsessignalbidrag basert i det minste delvis på en eller flere verdier som er tilknyttet en tilgjengelig ramme, og, etter en terskelvarighet av skjulingssignalet, addering av et støybidrag til skjulingssignalet. Ved påtreffing av den ene eller de flere manglende rammer fra bit strømmen, kan prosesseringen videre inkludere gradvis redusering av energi i skjulingssignalbidraget langs i det minste en del av lydsignalet, og gradvis øking av energi i støybidraget langs i det minste delen av lydsignalet. Dessuten, gradvis redusering av energien i forlengelsessignalbidraget kan inkludere gradvis redusering av energien inntil forlengelsessignalet ikke lenger er sansbart. Videre kan energien i forlengelsessignalbidraget reduseres gradvis, og energien i støybidraget kan reduseres gradvis inntil skjulingssignalet i hovedsak består av et forhåndsbestemt nivå av bakgrunnsstøy.
I et annet aspekt prosesseres en bit strøm for et lydsignal. Når man påtreffer en eller flere manglende rammer fra bit strømmen, inkluderer prosesseringen identifi sering av flere tilgjengelige segmenter fra en tilgjengelig ramme, og for hver av de flere tilgjengelige segmenter, anvendelse av en eller flere karakteristika for det tilgjengelige segment for å generere et avledet segment. Et flettet signal dannes ved bruk av de flere tilgjengelige segmenter og de flere avledede segmenter. Den tilgjengelige ramme kan være en ustemt ramme, og den ene eller de flere karakteristika kan inkludere energi for det tilgjengelige segment. De flere tilgjengelige segmenter kan inkludere første og andre tilgjengelige segmenter, de flere avledede segmenter kan inkludere første og andre avledede segmenter og dannelse av det flettede signal kan inkludere fletting av det første tilgjengelige segment med det første avledede segment, fletting av det første avledede segment med det annet avledede segment, og fletting av det annet avledede segment med det annet tilgjengelige segment. De flere tilgjengelige segmenter kan inkludere flere enn to tilgjengelige segmenter, og de flere avledede segmenter kan inkludere flere enn to avledede segmenter. Videre kan prosesseringen også inkludere anvendelse av det flettede segment istedenfor den tilgjengelige ramme og den ene eller de flere manglende rammer.
I et annet aspekt forvaltes en datastruktur. Datastrukturen inkluderer et sett av flere noder som korresponderer til pakker i et sett av mottatte pakker. Hver node i settet av flere noder inkluderer en forsinkelsesverdi for mottak av en korresponderende pakke i settet av mottatte pakker, en peker med høyere verdi som peker på en node i settet av flere noder med en neste høyere forsinkelsesverdi, og en peker med lavere verdi som peker på en node i settet av flere noder med en neste lavere forsinkelsesverdi. En ønsket pakkeforsinkelsesverdi fastlegges basert i det minste delvis på datastrukturen. Når en ny pakke mottas, kan forvalting av datastrukturen inkludere utbytting av en forsinkelsesverdi for en eldste pakke i settet av mottatte pakker med en forsinkelsesverdi for den nye pakke, oppdatering av pekeren med høy verdi for en eller flere noder i settet av flere noder, og oppdatering av pekeren med lav verdi for en eller flere noder i settet av flere noder. Dessuten, fastleggelse av den ønskede dekoder pakkeforsinkelsesverdi kan inkludere lokalisering av en node i settet av flere noder som omfatter en maksimum forsinkelsesverdi, undersøking av noder i settet av flere noder med suksessivt lavere forsinkelsesverdier inntil et ønsket antall av noder har blitt undersøkt, og anvendelse av forsinkelsesverdien for den siste node for undersøking som en ønsket pakkeforsinkelse for dekoderen. Det ønskede antall av noder kan også korrespondere til en forhåndsbestemt ønsket pakketapsrate.
De forskjellige teknikker og verktøy kan brukes i kombinasjon eller uavhengig.
Ytterligere trekk og fordeler vil klart fremgå av den følgende detaljerte beskrivelse av forskjellige utførelser som går fremover med henvisning til de ledsagende tegninger.
Kort beskrivelse av tegningene
Figur 1 er et blokkdiagram over en egnet databehandlingsomgivelse hvor en eller flere av de beskrevne utførelser kan implementeres. Figur 2 er et blokkdiagram over en nettverksomgivelse i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Figur 3 er et blokkdiagram over en sanntids talerammekoder i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Figur 4 er et flytdiagram som viser fastleggelsen av kodebokparametere i en implementering. Figur 5 er et blokkdiagram over en sanntids talerammedekoder i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Figur 6 er et blokkdiagram som viser den generelle strøm av lydinformasjon i et eksempel på Vol P-system på dekodersiden. Figur 7 er et blokkdiagram som viser bufringen av sampler i et eksempel på bufringsteknikk på dekodersiden.
Figur 8 er en graf over et eksempel på pakkeforsinkelsesfordeling.
Figur 9 er et diagram over et eksempel på pakkeforsinkelsesdatastruktur. Figur 10 er et flytdiagram som viser et eksempel på fastleggelse av en passende skjulingsteknikk. Figur 11 er et skjematisk diagram som illustrerer en teknikk for skjuling av manglende ustemt lydinformasjon. Figur 12 er et flytdiagram som viser et eksempel på en dekoder minne-gjenvinningsteknikk.
Detaljert beskrivelse
Beskrevne utførelser er rettet mot teknikker og verktøy for prosessering av lydinformasjon i koding og/eller dekoding. Med disse teknikker blir kvaliteten av tale som er avledet fra en talekodek, så som en sanntids talekodek, forbedret. Slike for-bedringer kan være resultat av bruk av forskjellige teknikker og verktøy, separat eller i kombinasjon.
Slike teknikker og verktøy kan inkludere velging av en skjulingsteknikk basert på karakteristika til lydsignalet og/eller anvendelse av pitch-dirring i forbindelse med teknikker for pitch-forlengelsesskjuling. Teknikken kan også inkludere koding av noe av eller alt av et signal som er et resultat av skjulingsteknikker, og bruk av den kodede informasjon til å regenerere det minne som brukes for dekoding av fremtidige pakker. Teknikkene kan i tillegg inkludere beregning av en ønsket pakkeforsinkelsesverdi ved bruk av en datastruktur som er tilpasset til sporing og ordning av pakkeforsinkelser.
Selv om operasjoner for de forskjellige teknikker er beskrevet i en bestemt, sekvensiell rekkefølge av hensyn til presentasjonen, skal det forstås at denne måten for beskrivelse omfatter mindre omarrangeringer i rekkefølgen av operasjoner, med mindre en bestemt ordning er påkrevd. For eksempel kan operasjoner som er beskrevet sekvensielt i enkelte tilfeller omarrangeres eller gjennomføres samtidig. Dessuten, for enkelthets skyld, kan det være at flytskjemaer ikke viser de forskjellige måter som bestemte teknikker kan brukes på i forbindelse med andre teknikker.
Selv om bestemte databehandlingsomgivelsestrekk og lydkodektrekk er beskrevet nedenfor, kan en eller flere av verktøyene og teknikkene brukes sammen med forskjellige ulike typer av databehandlingsomgivelser og/eller forskjellige ulike typer av kodeker. For eksempel kan en eller flere av de robuste dekoderteknikkene brukes sammen med kodeker som ikke bruker CELP-kodingsmodellen, så som adaptive differensial puls kodemodulasjonskodeker, transformasjonskodeker og/eller andre typer av kodeker. Som et annet eksempel kan en eller flere av de robuste dekoderteknikker brukes sammen med enkeltbåndkodeker eller subbåndkodeker. Som et annet eksempel kan en eller flere av de robuste dekoderteknikker anvendes på et enkeltbånd i en multibåndkodek og/eller på et syntetisert eller ukodet signal som inkluderer bidrag fra flere bånd i en multibåndkodek.
I. Databehandlingsomgivelse
Figur 1 illustrerer et generalisert eksempel på en passende databehandlingsomgivelse 100 hvor en eller flere av de beskrevne utførelser kan implementeres. Det er ikke meningen at det med databehandlingsomgivelsen 100 skal foreslå noen begrensning på omfanget av bruk eller funksjonalitet av oppfinnelsen, ettersom den foreliggende oppfinnelse kan implementeres i diverse databehandlingsomgivelser for generelt eller spesielt formål.
Med henvisning til figur 1, databehandlingsomgivelsen 100 inkluderer i det minste én prosesseringsenhet 110 og minne 120. På figur 1 er denne mest grunn-leggende konfigurasjon 130 inkludert innenfor en stiplet linje. Prosesseringsenheten 110 gjennomfører datamaskinutførbare instruksjoner, og kan være en virkelig eller en virtuell prosessor. I et multiprosesseringssystem utfører flere prosesseringsenheter datamaskinutførbare instruksjoner for å øke prosesseringskraft. Minnet 120 kan være et flyktig minne (eksempelvis registre, cache, RAM), ikke-flyktig minne (eksempelvis ROM, EEPROM, flash minne, osv), eller en kombinasjon av disse to. Minnet 120 lagrer programvare 180 som implementerer teknikker så som signalavhengig skjuling, pitch-dirring, dekoderminnegjenvinning og/eller lenket listepakkeforsinkelses-beregninger.
En databehandlingsomgivelse 100 kan ha ytterligere trekk. På figur 1 inkluderer databehandlingsomgivelsen 100 lagring 140, en eller flere innmatings-innretninger 150, en eller flere utgangsinnretninger 160 og en eller flere kommunika-sjonsforbindelser 170. En sammenkoplingsmekanisme (ikke vist), så som en buss, kontroller eller et nettverk, kopler sammen komponentene i databehandlingsomgivelsen 100. Operativsystemprogramvare (ikke vist) tilveiebringer typisk en opera-sjonell omgivelse for annen programvare som utføres i databehandlingsomgivelsen 100, og koordinerer aktiviteter til komponentene i databehandlingsomgivelsen 100.
Lagringen 140 kan være uttakbar eller ikke-uttakbar, og kan inkludere magnetiske disker, magnetiske bånd eller kassetter, CD-ROMer, CD-RWer, DVDer eller et hvilket som helst annet medium som kan brukes til å lagre informasjon, og som kan aksesseres innenfor databehandlingsomgivelsen 100. Lagringen 140 lagrer instruksjoner for programvaren 180.
Innmatingsinnretningen(e) 150 kan være en berøringsinnmatingsinnretning, så som et tastatur, mus, penn eller styrekule, en stemmeinnmatingsinnretning, en skanningsinnretning, nettverkadapter, eller en hvilken som helst annen innretning som tilveiebringer innmating til databehandlingsomgivelsen 100. For lyd kan inn-matingsinnretningen(e) 150 være et lydkort, mikrofon eller annen innretning som tar imot lydinnmating i analog eller digital form, eller en CD/DVD-leser som tilveiebringer lydsampler til databehandlingsomgivelsen 100. Utgangsinnretningen(e) 160 kan være et display, en printer, en høyttaler, CD/DVD-skriver, nettverkadapter eller en hvilken som helst annen innretning som tilveiebringer utmating fra databehandlingsomgivelsen 100.
Kommunikasjonsforbindelsen(e) 170 muliggjør kommunikasjon over et kommunikasjonsmedium til en annen databehandlingsentitet. Kommunikasjons-mediet fører informasjon, så som datamaskinutførbare instruksjoner, komprimert taleinformasjon eller andre data i et modulert datasignal. Et modulert datasignal er et signal som får ett eller flere av sine karakteristika satt eller forandret på en slik måte at informasjon kodes i signalet. Som eksempel, og ikke begrensning, kommunikasjonsmedia inkluderer ledningsførte eller trådløse teknikker som er implementert med en elektrisk, optisk, RF, infrarød, akustisk eller annen bærer.
Oppfinnelsen kan beskrives i den generelle kontekst med datamaskinlesbare media. Datamaskinlesbare media er et hvilket som helst tilgjengelig media som kan aksesseres innenfor en databehandlingsomgivelse. Som eksempel, og ikke begrensning, med databehandlingsomgivelsen 100, inkluderer datamaskinlesbare media minne 120, lagring 140, kommunikasjonsmedia og kombinasjoner av hvilket som helst av det ovenstående.
Oppfinnelsen kan beskrives i den generelle kontekst med datamaskinutførbare instruksjoner, så som de som er inkludert i programmoduler, idet disse utføres i en databehandlingsomgivelse på en virkelig eller virtuell målprosessor. Programmoduler inkluderer generelt rutiner, programmer, biblioteker, objekter, klasser, komponenter, datastrukturer, osv, som gjennomfører bestemte oppgaver eller implementerer bestemte abstrakte datatyper. Funksjonaliteten til programmodulene kan være kombinert eller delt mellom programmoduler, etter ønske i forskjellige utførelser. Data-maskinutførbare instruksjoner for programmoduler kan utføres innenfor en lokal eller distribuert databehandlingsomgivelse.
For presentasjonens skyld kan den detaljerte beskrivelse bruke uttrykk så som "bestemme" eller "fastlegge", "generere", "justere" og "anvende" for å beskrive data- maskinoperasjoner i en databehandlingsomgivelse. Disse uttrykk er høynivå abstrak-sjoner for operasjoner som gjennomføres av en datamaskin, og bør ikke blandes sammen med handlinger som gjennomføres av et menneske. De egentlige data-maskinoperasjoner som korresponderer til disse uttrykk varierer i avhengighet av implementeringen.
II. Generalisert nettverksomgivelse og sanntids talekodek
Figur 2 er et blokkdiagram over en generalisert nettverksomgivelse 200 i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Et nettverk 250 separerer forskjellige komponenter på kodersiden fra forskjellige komponenter på dekodersiden.
De primære funksjoner ved kodersidens og dekodersidens komponenter er talekoding henholdsvis -dekoding. På kodersiden tar en inngangsbuffer 210 imot og lagrer taleinnmating 202. Talekoderen 230 tar taleinnmating 202 fra inngangs-bufferen 210 og koder den.
Spesifikt, deler en rammesplitter 212 samplene av taleinnmatingen 202 i rammer. I en implementering er rammene uniformt tjue ms lange -160 sampler for åtte kHz inngang og 320 sampler for 16 kHz inngang. I andre implementeringer har rammene forskjellige varigheter, er ikke-uniforme eller overlappende, og/eller samplingsraten til innmatingen 202 er forskjellig. Rammene kan være organisert i en superramme/ramme, ramme/subramme, eller en annen konfigurasjon for forskjellige trinn av kodingen og dekodingen.
En rammesorterer 214 klassifiserer rammene i henhold til ett eller flere kriterier, så som energi i signalet, null kryssingsrate, langtids prediksjonsforsterkning, forsterkningsdifferensiale og/eller andre kriterier for subrammer eller de hele rammer. Basert på kriteriene klassifiserer rammesortereren 214 de forskjellige rammer i klasser, så som stille, ustemt, stemt og overgang (eksempelvis ustemt til stemt). I tillegg kan rammene klassifiseres i henhold til typen av redundant koding, hvis noen, som brukes for rammen. Rammeklassen påvirker de parametere som vil bli beregnet for å kode rammen. I tillegg kan rammeklassen påvirke oppløsningen og tapsrobustheten med hvilken parametere kodes, for å tilveiebringe større oppløsning og tapsrobusthet til flere viktige rammeklasser og parametere. For eksempel, stille rammer blir typisk kodet ved svært lav rate, de er svært enkle å gjenvinne ved skjuling hvis de mistes, og de trenger kanskje ikke beskyttelse mot tap. Ustemte rammer blir typisk kodet ved litt høyere rate, de er akseptabelt enkle å gjenvinne ved skjuling hvis de mistes, og er ikke i betydelig grad beskyttet mot tap. Stemte rammer og overgangsrammer er vanligvis kodet med flere bits, i avhengighet av kompleksiteten til rammen så vel som tilstedeværelsen av overganger. Stemte rammer og overgangsrammer er også vanskelige å gjenvinne hvis de mistes, og er derfor ikke vesentlig beskyttet mot tap. Alternativt bruker rammesortereren 214 andre og/eller ytterligere rammeklassen
På figur 2 kodes hver ramme, så som ved hjelp av en rammekodingskompo-nent 232. Slik rammekoding er beskrevet i nærmere detalj nedenfor med henvisning til figur 3. Den resulterende kodertale tilveiebringes til programvare for ett eller flere nettverkslag 240 gjennom en multiplekser ("MUX") 236. Nettverkslaget 240 prosesserer den kodede tale for overføring over nettverket 250. For eksempel pakker nettverkslagprogramvaren rammer med kodet taleinformasjon i pakker som følger RTP-protokollen, hvilke formidles over Internett ved bruk av UDP, IP og forskjellige fysiske lagsprotokoller. Alternativt brukes andre og/eller ytterligere lag med programvare eller nettverksprotokoller.
Nettverket 250 er et pakke-svitsjet regionnett så som Internett. Alternativt er nettverket 250 et lokalnett eller et annet slags nett.
På dekodersiden mottar og prosesserer programvare for ett eller flere nettverkslag 260 de overførte data. Nettverksprotokoller, transportprotokoller og høyere lags protokoller og programvare i nettverkslaget/-lagene 260 på dekodersiden korresponderer vanligvis til de som er i nettverkslaget/-lagene 240 på kodersiden. Nettverkslaget/-lagene tilveiebringer den kodede taleinformasjon til taledekoderen 270 gjennom en demultiplekser ("DEMUX") 276.
Dekoderen 270 dekoder hver ramme, slik dette vises i dekodingsmodulen 272. Den dekodede taleutgang 292 kan også sendes gjennom ett eller flere etterfiltre 284 for å forbedre kvaliteten av den resulterende, filtrerte taleutgang 294.
En generalisert sanntids talerammedekoder er beskrevet nedenfor med henvisning til figur 5, men andre taledekodere kan brukes isteden. I tillegg kan noen av eller alle de beskrevne verktøy og teknikker brukes sammen med andre typer av lydkodere og -dekodere, så som musikkodere og -dekodere, eller lydkodere og -dekodere for generelt formål.
Bortsett fra disse primære kodings- og dekodingsfunksjoner, kan komponentene også dele informasjon (vist i stiplede linjer på figur 2) for å styre raten, kvaliteten og/eller tapsrobustheten til den kodede tale. Ratekontrolleren 220 betrakter et mangfold av faktorer, så som kompleksiteten til den inneværende inngang i inngangs-bufferen 210, bufferfullheten til utgangsbuffere i koderen 230 eller et annet sted, ønsket utgangsrate, den inneværende nettverksbåndbredde, nettverks-opphopning/støybetingelser og/eller dekoderens tapsrate. Dekoderen 270 mater tilbake dekodertapsrateinformasjon til ratekontrolleren 220. Nettverkslaget/-lagene 240, 260 samler inn eller estimerer informasjon om inneværende nettverksbåndbredde og opphopning/støyforhold, hvilken mates tilbake til ratekontrolleren 220. Alternativt betrakter ratekontrolleren 220 andre og/eller ytterligere faktorer.
Ratekontrolleren 220 leder talekoderen 230 til å forandre raten, kvaliteten og/eller tapsrobustheten som tale kodes med. Koderen 230 kan forandre rate og kvalitet ved justering av kvantiseringsfaktorer for parametere eller forandring av opp-løsningen til entropikoder som representerer parameterne. Koderen kan i tillegg forandre tapsrobusthet ved justering av raten eller typen av redundant koding. Koderen 230 kan således forandre allokeringen av bits mellom primære kodingsfunk-sjoner og tapsrobusthetsfunksjoner, avhengig av nettverksbetingelser. Alternativt styres raten på en annen måte, så som der hvor koderen opererer ved en fast rate.
Figur 3 er et blokkdiagram over en generalisert talerammekoder 300 i forbindelse med hvilken en eller flere av de beskrevne utførelser kan implementeres. Rammekoderen 300 korresponderer generelt til rammekodingskomponenten 232 på figur 2. Rammekoderen 300 tar imot rammeinnmatingen 302 fra rammesplitteren og produserer kodet rammeutgang 392.
LP-analysekomponenten 330 beregner lineære prediksjonskoeffisienter 332.1 en implementering bruker LP-filteret ti koeffisienter for åtte kHz inngang og 16 koeffisienter for 16 kHz inngang, og LP-analysekomponenten 330 beregner et sett av lineære prediksjonskoeffisienter per ramme. Alternativt beregner LP-analysekomponenten 330 to sett av koeffisienter per ramme, ett for hvert av to vinduer som er sentrert ved forskjellige lokaliseringer, eller beregner et forskjellig antall av koeffisienter per ramme.
LPC-prosesseringskomponenten 335 mottar og prosesserer de lineære prediksjonskoeffisienter 332. LPC-prosesseringskomponenten 335 konverterer typisk LPC- verdiene til en forskjellig representasjon for mer effektiv kvantisering og koding. For eksempel konverterer LPC-prosesseringskomponenten 335 LPC-verdier til en linjespektralpar (line spectral pair, LSP) representasjon, og LSP-verdiene kvantiseres (så som ved hjelp av vektorkvantisering) og kodes. LSP-verdiene kan intrakodes eller predikeres fra andre LSP-verdier. Forskjellige representasjoner, kvantiserings-teknikker og kodingsteknikker er mulige for LPC-verdier. LPC-verdiene er tilveiebrakt i en form som del av den kodede rammeutgang 392 for pakketisering og overføring (sammen med eventuelle kvantiseringsparametere og annen informasjon som er nød-vendig for rekonstruksjon). For etterfølgende bruk i koderen 300, rekonstruerer LPC-prosesseringskomponenten 335 LPC-verdiene. LPC-prosesseringskomponenten 335 kan gjennomføre interpolasjon for LPC-verdier (så som ekvivalent i LSP-representasjon eller en annen representasjon) for å glatte overgangene mellom forskjellige sett av LPC-koeffisienter, eller mellom de LPC-koeffisienter som brukes for forskjellige subrammer eller rammer.
Syntesefilteret (eller "korttids prediksjonsfiltret") 340 tar imot rekonstruerte LPC-verdier 338 og inkorporerer dem i filteret. Syntesefilteret 340 mottar et eksitasjonssignal og produserer en approksimasjon av det opprinnelige signal. For en gitt ramme kan syntesefilteret 340 bufre et antall av rekonstruerte sampler (eksempelvis ti for et ti-tapsfilter) fra den forangående ramme for starten av prediksjonen.
De perseptuelle vektingskomponenter 350, 355 anvender perseptuell vekting på det opprinnelige signal og den modellerte utgang fra syntesefilteret 340, for selektivt å legge mindre vekt på formant-strukturen til talesignaler, for å gjøre hørsels-systemet mindre sensitivt for kvantiseringsfeil. De perseptuelle vektingskomponenter 350, 355 nyttiggjør seg psykoakustiske fenomener, så som maskering. I en implementering anvender de perseptuelle vektingskomponenter 350, 355 vekter basert på de opprinnelige LPC-verdier 332 som er mottatt fra LP-analysekomponenten 330. Alternativt anvender de perseptuelle vektingskomponenter 350, 355 andre og/eller ytterligere vekter.
Etter de perseptuelle vektingskomponenter 350, 355, beregner koderen 300 differansen mellom det perseptuelt vektede opprinnelige signal og den perseptuelt vektede utgang fra syntesefilteret 340, for å produsere et differansesignal 334. Alternativt bruker koderen 300 en forskjellig teknikk for å beregne taleparameterne.
Eksitasjons parameteriseringskomponenten 360 søker å finne den beste kombinasjon av adaptive kodebokindekser, faste kodebokindekser og forsterknings-kodebokindekser i form av å minimere differansen mellom det perseptuelt vektede opprinnelige signal og syntetiserte signal (uttrykt ved vektet middelkvadratfeil eller andre kriterier). Mange parametere beregnes per subramme, men mer generelt kan parameterne være per superramme, ramme eller subramme. Tabell 2 viser de tilgjengelige typer av parametere for forskjellige rammeklasser i en implementering.
På figur 3 deler eksitasjons parameteriseringskomponenten 360 rammen i subrammer og beregner kodebokindekser og forsterkninger for hver subramme slik dette er passende. For eksempel kan det antall og type av kodeboktrinn som skal brukes, og oppløsningene av kodebokindekser, initialt bestemmes av en kodingsmodus, hvor modusen er diktert av den ratestyringskomponent som er omtalt ovenfor. En bestemt modus kan også diktere andre kodings- og dekodingsparametere andre enn antallet og typen av kodeboktrinn, for eksempel oppløsningen av kode-bokindeksene. Parameterne for hvert kodeboktrinn bestemmes ved optimering av parameterne for å minimere feil mellom et målsignal og bidraget fra dette kodeboktrinnet til det syntetiserte signal. (Som her brukt betyr uttrykket "optimere" å finne en passende oppløsning under anvendbare skranker, så som forvrengningsreduksjon, parametersøketid, parametersøkekompleksitet, bit rate for parametere, osv., i mot-setning til å gjennomføre et fullt søk på parameterrommet. Tilsvarende bør uttrykket "minimere" forstås med henblikk på å finne en passende løsning under anvendbare skranker.) For eksempel kan optimeringen gjøres ved bruk av en modifisert middel-kvadratfeilteknikk. Målsignalet for hvert trinn er differansen mellom restsignalet og summen av bidragene fra de forangående kodeboktrinn, hvis det er noen, til det syntetiserte signal. Alternativt kan det brukes andre optimeringsteknikker.
Figur 4 viser en teknikk for bestemmelse av kodebokparametere i henhold til en implementering. Eksitasjons parameteriseringskomponenten 360 gjennomfører teknikken, muligens i forbindelse med andre komponenter, så som en ratekontroller. Alternativt gjennomfører en annen komponent i en koder teknikken.
Med henvisning til figur 4, for hver subramme i en stemt ramme eller over-gangsramme, bestemmer 410 eksitasjons parameteriseringskomponenten 360 om hvorvidt en adaptiv kodebok kan brukes for den inneværende subramme. (For eksempel kan ratestyringen diktere at ingen adaptiv kodebok skal brukes for en bestemt ramme.) Hvis den adaptive kodebok ikke skal brukes, så vil en adaptiv kodebok-svitsj at ingen adaptive kodebøker skal brukes 435. For eksempel kan dette gjøres ved å sette et én-bit flagg på rammenivået, hvilket viser at ingen adaptive kodebøker skal brukes i rammen, ved spesifisering av en bestemt kodingsmodus ved rammenivået, eller ved å sette et én-bit flagg for hver subramme, hvilket viser at ingen adaptiv kodebok brukes i subrammen.
Med fortsatt henvisning til figur 4, hvis en adaptiv kodebok kan brukes, så bestemmer komponenten 360 adaptive kodebokparametere. Disse parametere inkluderer en indeks, eller pitch-verdi, som viser et ønsket segment av eksitasjonssignalhistorien, så vel som en forsterkning å anvende på det ønskede segment. På figurene 3 og 4 gjennomfører komponenten 360 et lukket sløyfe pitch-søk 420. Dette søket begynner med den pitch som er bestemt av den valgfrie åpen sløyfe pitch-søkekomponent 325 på figur 3. En åpen sløyfe pitch-undersøkelseskomponent 325 analyserer det vektede signal produsert av vektingskomponenten 350 for å estimere dets pitch. Idet den begynner med denne estimerte pitch, optimerer den lukkede sløyfe pitch-undersøkelsen 420 pitch-verdien for å redusere feilen mellom målsignalet og det vektede, syntetiserte signal som genereres fra et angitt segment av eksitasjonssignalhistorien. Den adaptive kodeboks forsterkningsverdi blir også optimert 425. Den adaptive kodeboks forsterkningsverdi angir en multiplikator for å anvende på de pitch-predikerte verdier (verdiene fra det angitte segment av eksitasjonssignalhistorien), for å justere skalaen av verdiene. Den forsterkning som multipliseres med de pitch-predikerte verdier er den adaptive kodebok sitt bidrag til eksitasjonssignalet for den inneværende ramme eller subramme. Forsterknings-optimeringen 425 og den lukkede sløyfe pitch-undersøkelse 420 produserer en forsterkningsverdi henholdsvis en indeksverdi, som minimerer feilen mellom målsignalet og det vektede syntetiserte signal fra den adaptive kodebok sitt bidrag.
Hvis komponenten 360 bestemmer 430 at den adaptive kodebok skal brukes, så signaleres 440 de adaptive kodebokparametere i bit strømmen. Hvis ikke, så angis det at ingen adaptiv kodebok brukes for subrammen 435, så som ved å sette et én-bit subrammenivåflagg, som omtalt ovenfor. Denne bestemmelse 430 kan inkludere bestemmelse av om hvorvidt den adaptive kodebok sitt bidrag for den bestemte subramme er signifikant nok til å være verdt det antall av bits som er påkrevd for å signalisere de adaptive kodebokparametere. Alternativt kan en annen basis brukes for bestemmelsen. Dessuten, selv om figur 4 viser signalering etter bestemmelsen, blir signaler alternativt bearbeidet satsvis inntil teknikken avsluttes for en ramme eller superramme.
Eksitasjons parameteriseringskomponenten 360 bestemmer også 450 om hvorvidt det brukes en pulskodebok. Bruken eller ikke-bruken av pulskodeboken angis som en del av en samlet kodingsmodus for den inneværende ramme, eller det kan angis eller bestemmes på andre måter. En pulskodebok er en type av fast kodebok som spesifiserer en eller flere pulser som skal være bidrag til eksitasjonssignalet. Pulskodebokparameterne inkluderer par av indekser og fortegn (forsterkning kan være positiv eller negativ). Hvert par angir en puls som skal inkluderes i eksitasjonssignalet, hvor indeksen angir posisjonen til pulsen og fortegnet angir polariteten til pulsen. Det antall av pulser som er inkludert i pulskodeboken og som brukes til å bidra til eksitasjonssignalet kan variere i avhengighet av kodings-modusen. I tillegg kan antallet av pulser avhenge av om hvorvidt eller ikke det brukes en adaptiv kodebok.
Hvis pulskodeboken brukes, så optimeres 455 pulskodebokparameterne for å minimere feil mellom bidraget fra de angitte pulser og et målsignal. Hvis en adaptiv kodebok ikke brukes, så er målsignalet det vektede opprinnelige signal. Hvis en adaptiv kodebok brukes, så er målsignalet differansen mellom det vektede opprinnelige signal og bidraget fra den adaptive kodebok til det vektede syntetiserte signal. Ved et punkt (ikke vist), blir pulskodebokparameterne deretter signalert i bit strømmen.
Eksitasjons parameteriseringskomponenten 360 bestemmer også 465 om hvorvidt de tilfeldige, faste kodeboktrinn skal brukes. Antallet (hvis det er noen) av de tilfeldige kodeboktrinn angis som del av en samlet kodingsmodus for den inneværende ramme, eller det kan angis eller bestemmes på andre måter. En tilfeldig kodebok er en type av fast kodebok som bruker en forhåndsdefinert signalmodell for de verdier den koder. Kodebokparameterne kan inkludere utgangspunktet for et angitt segment av signalmodellen og et fortegn som kan være positivt eller negativt. Lengden eller verdiområdet av det angitte segment er typisk fast, og blir derfor ikke typisk signalert, men alternativt signaleres en lengde eller utstrekning av det angitte segment. En forsterkning multipliseres med verdien i det angitte segment for å produsere bidraget fra den tilfeldige kodebok til eksitasjonssignalet.
Hvis det brukes minst ett tilfeldig kodeboktrinn, så optimeres 470 kodebok-trinnparameterne for dette kodeboktrinnet, for å minimere feilen mellom bidraget fra det tilfeldige kodeboktrinn og et målsignal. Målsignalet er differansen mellom det vektede opprinnelige signal og summen av bidraget til det vektede syntetiserte signal fra den adaptive kodebok (hvis det er noen), pulskodeboken (hvis det er noen) og de forangående bestemte tilfeldige kodeboktrinn (hvis det er noen). Ved et punkt (ikke vist), blir de tilfeldige kodebokparametere deretter signalert i bit strømmen.
Komponenten 360 bestemmer deretter 480 om hvorvidt noen flere tilfeldige kodeboktrinn skal brukes. I så fall blir parameterne for det neste tilfeldige kodeboktrinn optimert 470 og signalert som beskrevet ovenfor. Dette fortsetter inntil alle parameterne for de tilfeldige kodeboktrinn har blitt bestemt. Alle de tilfeldige kodeboktrinn kan bruke den samme signalmodell, selv om de trolig vil angi forskjellige segmenter fra modellen og ha forskjellige forsterkningsverdier. Alternativt kan forskjellige signal-modeller brukes for forskjellige tilfeldige kodeboktrinn.
Hver eksitasjonsforsterkning kan kvantiseres uavhengig, eller to eller flere forsterkninger kan kvantiseres sammen, som det bestemmes av ratekontrolleren og/eller andre komponenter.
Selv om én bestemt rekkefølge her har blitt fremsatt for optimering av de forskjellige kodebokparametere, kan andre rekkefølger og optimeringsteknikker brukes. For eksempel kan alle tilfeldige kodebøker optimeres samtidig. Således, selv om figur 4 viser sekvensiell beregning av forskjellige kodebokparametere, blir alternativt to eller flere forskjellige kodebokparametere optimert i fellesskap (eksempelvis ved i fellesskap å variere parameterne og evaluere resultater i henhold til en ikke-lineær optimeringsteknikk). I tillegg kan andre konfigurasjoner av kodebøker eller andre eksitasjonssignalparametere brukes.
Eksitasjonssignalet i denne implementering er summen av alle bidrag fra den adaptive kodebok, pulskodeboken og den eller de tilfeldige kodeboktrinn. Alternativt kan komponenten 360 beregne andre og/eller ytterligere parametere for eksitasjonssignalet.
Med henvisning til figur 3 blir kodebokparametere for eksitasjonssignalet signalert eller på annen måte tilveiebrakt til en lokal dekoder 365 (innelukket av stiplede linjer på figur 3) så vel som rammeutgangen 392. Den kodede rammeutgang 392 inkluderer således utgangen fra LPC-prosesseringskomponenten 335 som er omtalt ovenfor, så vel som utgangen fra eksitasjons parameteriseringskomponenten 360.
Bit raten for utgangen 392 avhenger delvis av de parametere som brukes av kodebøkene, og koderen 300 kan styre bit rate og/eller kvalitet ved svitsjing mellom forskjellige sett av kodebokindekser, ved bruk av integrerte koder, eller ved bruk av andre teknikker. Forskjellige kombinasjoner av kodeboktypene og -trinnene kan gi forskjellige kodingsmodi for forskjellige rammer og/eller subrammer. Foreksempel kan en ustemt ramme bruke kun ett tilfeldig kodeboktrinn. En adaptiv kodebok og en pulskodebok kan brukes for en stemt ramme med lav rate. En ramme med høy rate kan kodes ved bruk av en adaptiv kodebok, en pulskodebok og ett eller flere tilfeldige kodeboktrinn. Ratestyringsmodulen kan bestemme eller influere på den modus som er satt for hver ramme.
Med fortsatt henvisning til figur 3, utgangen fra eksitasjons parameteriseringskomponenten 360 mottas av kodebokrekonstruksjonskomponenter 370, 372, 374, 376 og forsterkningsapplikasjonskomponenter 380, 382, 384, 386 som korresponderer til de kodebøker som brukes av parameteriseringskomponenten 360. Kodeboktrinnene 370, 372, 374, 376 og korresponderende forsterkningsapplikasjonskomponenter 380, 382, 384, 386 rekonstruerer bidragene fra kodebøkene. Disse bidrag summeres for å produsere et eksitasjonssignal 390, som mottas av syntesefiltret 340, hvor det brukes sammen med de "predikerte" sampler som etterfølgende lineær prediksjon fremkommer fra. Forsinkede deler av eksitasjonssignalet blir også brukt som et eksitasjonshistoriesignal av den adaptive kodebokrekonstruksjonskomponent 370 for å rekonstruere etterfølgende adaptive kodebokparametere (eksempelvis pitch-bidrag), og av parameteriseringskomponenten 360 ved beregning av etter-følgende adaptive kodebokparametere (eksempelvis pitch-indeks og pitch-forsterkningsverdier).
Med henvisning tilbake til figur 2, den kodede rammeutgang tas imot av MUXen 236, sammen med andre parametere. Slike andre parametere kan blant
annet inkludere informasjon, rammeklasseinformasjon 222 fra rammesortereren 214 og rammekodingsmodi. MUXen 236 konstruerer applikasjonslagpakker for sending til annen programvare, eller MUXen 236 putter data i nyttedataene til pakker som følger en protokoll så som RTP. MUXen kan bufre parametere, for å tillate selektiv repetisjon av parameterne for forover feilkorreksjon i senere pakker. I en implementering pakker MUXen 236 den primære kodede taleinformasjon for en ramme i en enkelt pakke, sammen med forover feilkorreksjonsinformasjon for alle eller en del av en eller flere forangående rammer.
MUXen 236 tilveiebringer tilbakemelding, så som inneværende bufferfullhet for ratestyringsformål. Mer generelt kan forskjellige komponenter i koderen 230 (inkludert rammesortereren 214 og MUXen 236) tilveiebringe informasjon til en ratekontroller 220, så som den som er vist på figur 2.
Bit strømmen DEMUX 276 på figur 2 tar imot kodet taleinformasjon som inngang og analyserer den for å identifisere og prosessere parametere. Parameterne kan inkludere rammeklasse, en representasjon av LPC-verdier og kodebokparametere. Rammeklassen kan angi hvilke andre parametere som er tilstede for en gitt ramme. Mer generelt bruker DEMUXen 276 de protokoller som brukes av koderen 230 og ekstraherer de parametere som koderen 230 pakker inn i pakker. For pakker som mottas over et dynamisk pakke-svitsjet nettverk, inkluderer DEMUXen 276 en dirringsbuffer for å glatte ut korttids fluktuasjoner i pakkerate over en gitt tidsperiode.
I enkelte tilfeller regulerer dekoderen 270 bufferforsinkelse og administrerer når pakker leses ut fra bufferen, for å integrere forsinkelse, kvalitetskontroll, skjuling av manglende rammer, osv, i dekoding. I andre tilfeller administrerer en applikasjons-lagkomponent dirringsbufferen, og dirringsbufferen fylles ved en variabel rate og tømmes av dekoderen 270 ved en konstant eller relativt konstant rate.
DEMUXen 276 kan motta flere versjoner av parametere for et gitt segment, inkludert en primær kodet versjon og en eller flere sekundære feilkorreksjonsver- sjoner. Når feilkorreksjonen mislykkes, bruker dekoderen 270 skjulingsteknikker, så som de skjulingsteknikker som er beskrevet nedenfor.
Figur 5 er et blokkdiagram over en generalisert sanntids talerammedekoder 500 i forbindelse med hvilken en eller flere beskrevne utførelser kan implementeres. Rammedekoderen 500 korresponderer generelt bånddekodingskomponenten 272 på figur 2.
Rammedekoderen 500 tar imot kodet taleinformasjon 592 som innmating og produserer en rekonstruert utgang 502 etter dekoding. Komponentene i dekoderen 500 har korresponderende komponenter i koderen 300, men samlet sett er dekoderen 500 enklere, siden den mangler komponenter for perseptuell vekting, eksitasjonsprosesseringssløyfen og ratestyring.
LPC-prosesseringskomponenten 535 mottar informasjon som representerer LPC-verdier i den form som er tilveiebrakt av rammekoderen 300 (så vel som eventuelle andre kvantiseringsparametere og annen informasjon som er nødvendig for rekonstruksjon). LPC-prosesseringskomponenten 535 rekonstruerer LPC-verdiene 538 ved bruk av det inverse av konverteringen, kvantiseringen, kodingen, osv, som tidligere er anvendt på LPC-verdiene. LPC-prosesseringskomponenten 535 kan også gjennomføre interpolasjon for LPC-verdiene (i LPC-representasjon eller en annen representasjon, så som LSP) for å glatte overgangene mellom forskjellige sett av LPC-koeffisienter.
Kodeboktrinnene 570, 572, 574, 576 og forsterkningsapplikasjonskomponenter 580, 582, 584, 586 dekoder parameterne for hvilke som helst av de korresponderende kodeboktrinn som brukes for eksitasjonssignalet, og beregner bidraget fra hvert kodeboktrinn som brukes. Mer generelt korresponderer konfigurasjonen og operasjonene av kodeboktrinnene 570, 572, 574, 576 og forsterkningskomponentene 580, 582, 584, 586 til konfigurasjonen og operasjonene av kodeboktrinnene 370, 372, 374, 376 og forsterkningskomponentene 380, 382, 384, 386 i koderen 300. Bidragene fra de brukte kodeboktrinn summeres, og det resulterende eksitasjonssignal 590 mates inn i syntesefilteret 540. Forsinkede verdier av eksitasjonssignalet 590 brukes også som en eksitasjonshistorie av den adaptive kodebok 570 ved beregning av bidraget fra den adaptive kodebok for etterfølgende deler av eksitasjonssignalet.
Syntesefilteret 540 tar imot rekonstruerte LPC-verdier 538 og inkorporerer dem i filteret. Syntesefilteret 540 lagrer forangående rekonstruerte sampler for prosessering. Eksitasjonssignalet 590 sendes gjennom syntesefilteret for å danne en approksimasjon av det opprinnelige talesignal.
De relasjoner som er vist på figurene 2-5 angir generelle strømmer av informasjon; andre relasjoner er av hensyn til enkelheten ikke vist. Avhengig av implementering og den type av kompresjon som ønskes, kan komponenter adderes, utelates, deles i flere komponenter, kombineres med andre komponenter og/eller byttes ut med like komponenter. For eksempel, i omgivelsen 200 som er vist på figur 2, kan ratekontrolleren 220 kombineres med talekoderen 230. Mulige tilførte komponenter inkluderer en multimediakodings- (eller avspillings-) applikasjon som håndterer talekoderen (eller dekoderen) så vel som andre kodere (eller dekodere) og samler inn nettverks- og dekodertilstandsinformasjon, og som gjennomfører funksjoner med adaptive feilkorreksjoner. I alternative utførelser prosesserer forskjellige kombinasjoner og konfigurasjoner av komponenter taleinformasjon ved bruk av de teknikker som her er beskrevet.
III. Robuste dekodingsteknikker og verktøy
Med forskjellige robuste dekodingsteknikker og verktøy, blir kvaliteten av tale som avledes fra en talekodek, så som en sanntids talekodek, forbedret. De forskjellige robuste dekodingsteknikker og verktøy kan brukes separat eller i kombinasjon.
Selv om bestemte databehandlingsomgivelsestrekk og lydkodektrekk er beskrevet ovenfor, kan en eller flere av verktøyene og teknikkene brukes sammen med forskjellige ulike typer av databehandlingsomgivelser og/eller forskjellige ulike typer av kodeker. For eksempel kan en eller flere av de robuste dekoderteknikker brukes sammen med kodeker som ikke bruker CELP-kodingsmodellen, så som adaptive differansial pulskodemodulasjonskodeker, transformasjonskodeker og/eller andre typer av kodeker. Som et annet eksempel kan en eller flere av de robuste dekoderteknikker brukes sammen med enkeltbåndkodeker eller subbåndkodeker. Som et annet eksempel kan en eller flere av de robuste dekoderteknikker anvendes på et enkelt bånd i en multibåndkodek og/eller på et syntetisert eller ukodet signal som inkluderer bidrag fra flere bånd i en multibåndkodek.
A. VolP på dekodersiden
Stemme over Internett protokoll (voice over Internet protocol, "VolP")-applikasjoner er en av de mulige bruksområder for den beskrevne kodek. VolP-applikasjoner opererer typisk enten i såkalt "skyvemodus" eller såkalt "trekkemodus". De beskrevne teknikker kan brukes i begge modi, eller i en annen modus. Mange av de inneværende VolP-applikasjoner bruker imidlertid trekkemodusdekoding. Figur 6 illustrerer følgelig i generell form et mulig arrangement av trekkemodusoperasjoner på dekodersiden. Generelt sender VolP-applikasjonen 610 alle pakker som er mottatt fra en nettverkskilde 600 umiddelbart til dekoderen 620, som vil beslutte den ønskede bufringsforsinkelse. På figur 6 gjennomfører dekoderen 620 de skjulingsteknikker som er beskrevet nedenfor, istedenfor å delegere oppgaven med skjuling av manglende deler av signalet til mottakerapplikasjonen 610. Alternativt gjennom-fører applikasjonen 610 eller en annen komponent de skjulingsteknikker som er beskrevet nedenfor
I trekkemodus, når gjengiveren 630, en lydavspillingskomponent, behøver ytterligere dekodet lydinformasjon å spille, anmoder den 650 om informasjonen. VolP-applikasjonen 610 henter frem 655 den informasjon som er tilgjengelig fra nett-verkskilden 600 (ikke bare for den avspillingsperiode det er anmodet om) og skyver 660 informasjonen til dekoderen 620. Dekoderen 620 dekoder en del av informasjonen (eksempelvis sampler for den avspillingsperiode det er anmodet om) og returnerer 655 den dekodede informasjon til VolP-applikasjonen 610, som leverer 670 informasjonen til gjengiveren 630.
Hvis en eller flere rammer mangler, gjennomfører dekoderen 620 en eller flere skjulingsteknikker og returnerer den resulterende skjulingsinformasjon (eksempelvis som lydsampler) til VolP-applikasjonen 610 istedenfor de virkelige sampler for den eller de manglende rammer. Fordi gjengiveren 630 anmoder om sampler når den behøver dem, avhenger tidsstyringen kun av den lokale klokke som brukes av gjengiveren 630. Denne design kan således automatisk ta hånd om klokkedrift-problemer som kan opptre i andre design, så som skyvemodusdekodere som kan være avhengig av flere klokker med litt forskjellige klokkehastigheter.
Som illustrert på figur 7 blir de pakker som mottas av VolP-applikasjonen fra en nettverkskilde 710 levert umiddelbart inn i dekoderen, som plasserer dem i henhold til deres sekvensielle rekkefølge (i lydsignalet) i en dirringsbuffer 720. Som illustrert på figur 7 angir en "1" i dirringsbufferen 720 at en korresponderende pakke er til stede, og en "0" angir at den korresponderende pakke er fraværende.
I tillegg er det en samplingsbuffer 730 som holder dekodede utgangssampler 740 tilgjengelige for avspilling. Når gjengiveren 760 ønsker å spille en lyd, trekker den de ønskede sampler 750 fra dekodersampelbufferen 730. Hvis sampelbufferen 730 ikke har nok sampler til å oppfylle anmodningen, ser dekoderen til dirringsbufferen 720 for å se om den neste pakke er tilgjengelig.
Hvis den neste pakke er tilgjengelig, så dekodes den, og de dekodede sampler plasseres i sampelbufferen 730, og de sampler det er anmodet om sendes til gjengiveren 760 gjennom VolP-applikasjonen. På den annen side, hvis pakken ikke er tilgjengelig, så anropes en skjulingsmodul for å generere erstatningssampler. Skjulingssamplene plasseres i sampelbufferen 730, og anmodningen oppfylles. I begge tilfeller kan dirringsbufferen bli forskjøvet, og dirringsbufferhodeinformasjonen 725 blir passende justert.
B. Pakkeforsinkelsesberegning
I enkelte robuste dekodingsteknikker og verktøy, sporer dekoderen pakke-tapsraten og estimerer nettverksforsinkelsen ved overvåking av pakkemottakstids-punktene. Figur 8 illustrerer et eksempel på pakkeforsinkelsesfordeling. Historien over mottatte pakker kan brukes til å bestemme eventuelle forsinkelsestrender, og til å beregne en ønsket forsinkelse DønSket820. Hvis den ønskede forsinkelse 820 forandres eller hvis pakkeforsinkelsesfordelingen forandres (eksempelvis på grunn av nettverksfluktuasjoner), kan dekoderen forandre dirringsbufferforsinkelsen dynamisk og dekode ved bruk av tidskompresjon/forlengelse- (eller variabel-avspilling-) teknikker, hvilket modifiserer avspillingstiden for lyd under opprettholdelse av den korrekte pitch. Ved bruk av slike teknikker, når det observeres at pakkeforsinkelsen øker, kan samplene i sampelbufferen tidsforlenges slik at de sene pakker kan innpasses opp til et visst punkt som er akseptabelt for avspillingsforsinkelse, interaktivitet, osv. For stemte rammer kan dette gjøres ved bruk av de WSOLA teknikker som er beskrevet nedenfor. Tilsvarende, hvis forsinkelsen observeres å være minkende, så kan samplene i sampelbufferen tidskomprimeres (spilles raskere), slik at dirringsbufferen ikke blir full.
Tradisjonelle løsningsmåter for å beregne den ønskede forsinkelse inkluderer simpelthen å bruke maksimumsforsinkelsen til tidligere pakker som en veiledning. Imidlertid kan det enkelte ganger eksistere slengere, som forårsaker at systemet til-passer seg til urepresentative pakkeforsinkelsesverdier. I tillegg er det enkelte ganger bedre å la noen få pakker ankomme for sent til å kunne spilles tilbake enn å påtvinge en forsinkelse som er lang nok til å motta og bruke de sene slenger-pakker. Enkelte kodeker beregner ønsket forsinkelse basert på formler så som kjøring av gjennomsnittsberegninger og kjøring av variansberegninger. Et eksempel er beskrevet i R. Ramjee, J. Kurose, D. Towsley og H. Schulzrinne, "Adaptive Playout Mechanisms for Packetized Lyd Applications in Widearea Networks," Proceedin<g>s of IEEE INFOCOM ' 94, side 680-688, april 1994. Mange parameter må imidlertid optimeres i slike beregninger, og det er vanskelig å finne den riktige avveining mellom responshastighet på den ene side og basering av beregningene på en representativ populasjon av historieverdier på den annen side.
En annen løsningsmåte er å direkte analysere en pakkeforsinkelsesfordeling 810, så som ved å bruke implementeringen til Concord-algoritmen som er beskrevet i C.J. Sreenan, J-C. Chen, P. Agrawal og B. Narendran, "Delay Reduction Techniques for Playout Buffering," Proe. IEEE Trans. Multimedia, vol. 2 rn. 2, side 88-100, juni 2000. I denne metode forvaltes et histogram over pakkeforsinkelser. Bredden av et bånd i histogrammet representerer den ønskede nøyaktighet som den optimale forsinkelse vil bli beregnet med. Minking av båndstørrelsen forbedrer nøyaktigheten, men øker sporingskompleksiteten. Formen til histogrammet speiler tilnærmet den underliggende pakkeforsinkelsesfordeling. Når en ny pakke ankommer, avbildes pakkeforsinkelsen på det korresponderende bånd og tellingen av de pakker som faller inn i dette båndet inkrementeres. For å reflektere alderen av enkelte gamle pakker, blir tellinger i alle andre bånd skalert ned i en prosess som kalles "aldring". For å finne den nye ønskede forsinkelse setter dekoderen en ønsket tapsrate LønSket830. Typiske ønskede tapsrateverdier varierer mellom 1% og 5%. Histogrammet blir deretter analysert for å bestemme hvor det er nødvendig at den ønskede forsinkelse er for å oppnå tapsraten. Problemet med denne løsningsmåte er at enkelte parametere må avstemmes, så som båndbredde og aldringsfaktorer. I tillegg blir alle gamle pakker behandlet på samme måte, og aldrings-løsningsmåten spiller en altfor vesentlig rolle i den samlede ytelse. I tillegg, når det opptrer en klokkedriftsituasjon, har den samlede forsinkelse enten en positiv eller en negativ trend, hvilket ytterligere kan komplisere algoritmen, særlig når histogrammet er ment å forbli statisk innenfor tidsforsinkelsestidslinjen.
I en robust dekodingsteknikk som her presenteres, forvaltes en historie over forsinkelser for et fastsatt antall av pakker. For eksempel kan det antall av pakker som er inkludert i historien være 500, 1000 eller et annet passende antall. Med hver innkommende pakke, blir forsinkelsen av den eldste pakke erstattet med forsinkelsen av den nyeste pakke, eller den eldste pakke blir på annen måte byttet ut med den nyeste pakke i historien. På denne måte blir kun den eldste pakke fjernet fra beregningene. Med henvisning til figur 8, genereres et pakkeforsinkelsesfordelings-histogram 810 i henhold til en ønsket båndbredde som er basert på historien til alle pakkeforsinkelser som er registrert. Den optimale ønskede forsinkelse 820 bestemmes til å være den båndforsinkelsesverdi som korresponderer til det ønskede tap 830. Denne teknikk er ikke avhengig av aldringsmetoder. Problemer som er et resultat av klokkedriftsituasjoner blir følgelig redusert. De beregningsmessige krav for å regenerere et nytt histogram med hver ny pakke er imidlertid typisk høye. For eksempel, i en implementering, forbrukte histogramberegningen ca 10% av dekoderens samlede kompleksitet. Det kan være mulig å redusere denne kompleksitet ved å bruke et tidligere histogram på ny, istedenfor å gjenoppbygge det helt forfra, men hvis klokkedriftsituasjonen opptrer, kan dette tillate at forsinkelses-histogrammet forskyves langs forsinkelsestidsaksen selv når det skulle forbli statisk.
I en annen robust dekodingsteknikk brukes en datastruktur for å bestemme den optimale bufringsforsinkelse som er tilpasset til varierende pakkeforsinkelser. I en bestemt implementering brukes en dobbelt-lenket liste over forsinkelsesnoder som er plassert lineært i minne (eksempelvis i en matrise) til oppdateringer, så vel som for å bestemme den ønskede forsinkelse. Historien ved den n-te pakke som er mottatt defineres av Historie[ n] = { Dn, Dn.^, Dn. 2, III, Dn. N+ 1) hvor størrelsen av historien er N pakker. Forsinkelsesverdiene for de pakker som representeres i historien plasseres i en datastruktur av typen dobbelt-lenket liste.
Et eksempel på en slik datastruktur 910 med fire noder 920, 922, 924, 926 i en matrise er illustrert på figur 9. Datastrukturen kan selvsagt inkludere mange flere noder, så som 500 til 1000 noder. Fire noder er imidlertid vist for enkelthets skyld ved forklaring av datastrukturen. Hver node inkluderer en forsinkelsesverdi 940 som korresponderer til forsinkelsen av en mottatt pakke. Nodene 920, 922, 924, 926 kan plasseres lineært i minnet, og en indeks P 930 kan opereres i syklus over alle nodene. Indeksen P1030 sporer således den pakke som for det inneværende er den eldste i matrisen. Hver node 920, 922, 924, 926 har en neste peker 950 (her simpelthen et felt av en node) og en forangående peker 960 (her simpelthen et felt av en node). Hver neste peker 950 refererer til noden med den neste høyere forsinkelsesverdi. Hver forangående peker 960 refererer til noden med den neste lavere forsinkelsesverdi. Således, i datastrukturen 910 som er illustrert på figur 9, D„_f(ved Ps)<>>Dn (ved P4) > Dn. 2 (ved P2) > Dn. 3 (ved P*). Den eldste pakke (Pjj er initialt ved starten av listen.
Når hver ny pakke mottas, adderes pakken til strukturen 910 opp til det punkt hvor historien er fylt (eksempelvis 500 pakker sporet). På dette punkt, når en ny pakke mottas, blir den node som inkluderer informasjon om den eldste pakke byttet ut (for eksempel byttes pakke 1 ut med pakke 501 og den eldste pakken er nå pakke 2, deretter byttes pakke 2 ut med pakke 502, og den eldste pakke er nå pakke 3). Når den gamle nodeinformasjon byttes ut, oppdateres de forutgående og neste pekere. For den nye forsinkelsesverdi, finnes den riktige plass i den ordnede liste over forsinkelsesverdier ved sløyfebehandling over de neste pekere, og deretter blir forsinkelsesverdien "innsatt" i ordningen over forsinkelsesverdier ved oppdatering av den neste og forutgående pekere.
Den lenkede liste opprettholder også en referanse til den høyeste forsinkelse i listen. Når det er ønskelig å finne den optimale ønskede forsinkelse for en korresponderende ønsket tapsrate, starter en dekoder ved den høyeste forsinkelse og den følger de forutgående pekere mot lavere forsinkelser inntil en telling av noder som korresponderer til den ønskede tapsrate er funnet. Dette kan gjøres hver gang en ny pakke mottas, eller ved et annet intervall. Å finne den ønskede forsinkelse er således en enkelt prosess, fordi kun noen få noder (for eksempel 1% til 5% for 1% til 5% ønskede tapsverdier) gåes over. Dette kan også tilveiebringe en naturlig løsning på klokkedriftproblemet, fordi det ikke dannes noen egentlige histogrammer. Fenomenet med forskyvning av histogrammer kan således håndteres automatisk. I tillegg er beregningene ikke begrenset til den nøyaktighet som er spesifisert av båndbredder. Beregningene kan følgelig være finere og mer nøyaktig enn med typiske histogram-teknikker.
Alternativt, istedenfor å implementeres som en matrise i lineært minne, implementeres den dobbelt-lenkede liste som en annen type av dynamisk datastruktur.
C. Signalavhengig skjuling
Når en eller flere pakker mangler, kan én av flere mulige løsningsmåter brukes for å produsere et signal som skjuler tapet. En passende skjulingsteknikk kan velges avhengig av karakteren av signalet og av antallet av manglende pakker eller rammer.
Ett eksempel på fastleggelse av en signalteknikk er illustrert på figur 10. Alternativt kan det brukes andre fastleggelser. Med henvisning til figur 10, påtreffes 1010 en eller flere manglende rammer. En skjulingsteknikk velges 1020 basert på en eller flere faktorer, så som karakteren av en eller flere tilgrensende rammer og antallet av manglende rammer. Alternativt brukes andre og/eller ytterligere faktorer for velgingen. En skjulingsteknikk produseres 1030 ved bruk av den valgte teknikk. Flere eksempler på signalavhengig skjulingsteknikk følger. I henhold til en første type av signalavhengig skjulingsteknikk, brukes enveis skjuling av stemt tale når tidligere informasjon er tilgjengelig for en manglende stemt ramme eller rammer, og den foregående tilgjengelige ramme er klassifisert som en stemt ramme. Enveis skjuling kan også brukes, når fremtidig informasjon er tilgjengelig, hvis gapet mellom tilgjengelig lydinformasjon er for langt til at det er praktisk å bruke toveis skjuling eller å opp-rettholde lav kompleksitet, eller av andre årsaker.
Bølgeform likhet overlapp-addér (waveform similarity overlap-add, "WSOLA") skjulingsteknikken kan brukes for enveis skjuling. WSOLA er beskrevet i Y.J. Liang, N. Fårber og B. Girod, "Adaptive Playout Scheduling and Loss Concealment for Voice Communication over IP Networks," IEEE Transactions on Multimedia, vol. 5,
nr. 4, side 532-543, des. 2003. WSOLA-teknikken forlenger et forangående signal ved å generere nye pitch-sykluser gjennom vektede gjennomsnitt av eksisterende pitch-sykluser. Enhver ønsket lengde kan genereres ved bruk av denne fremgangsmåte, inntil den neste pakke er mottatt. Imidlertid, hvis pitch-forlengelsen blir for stor, så som når mange pakker er mistet, kan WSOLA-metoden resultere i en mekanisk lyd.
Således, i den foreliggende robuste dekodingsteknikk, kan støy adderes hvis pitch-forlengelsen blir for stor. Støyen kan for eksempel genereres ved bruk av tilfeldig hvit støy som sendes gjennom et lineært prediksjonskoeffisientfilter som er optimert for det sist mottatte lydsignal. Energien i støyen kan øke ettersom forlengelsen øker. Som omtalt nedenfor kan energien i pitch-forlengelsene også gradvis minke inntil alt som er igjen er den genererte bakgrunnsstøy.
Det forlengede signal flettes med et senere signal som er produsert fra en senere mottatt pakke. Dette kan inkludere en signaloverensstemmelsesrutine for å maksimere korrelasjonen mellom de to signaler. Denne signaloverensstemmelses-rutinen kan være en enkel korrelasjonsrutine, så som en korrelasjonsrutine som multi-pliserer korresponderende sampelamplituder for de overlappende signaler og summerer de resulterende produkter for å produsere en korrelasjonsverdi. Etter-slepet av det senere signal kan justeres for å maksimere denne korrelasjonsverdi. Alternativt kan det brukes andre signaloverensstemmelsesrutiner. Signalene kan flettes ved bruk av vektingsvinduer, så som vektingsvinduer som er designet til å ha en konstant effekt på signalenergien over det flettede område.
I henhold til en annen type av signalavhengig skjulingsteknikk, hvis signalet som skal forlenges er ustemt i sin natur (det vil si at ingen klar stemme- eller pitch-informasjon kan finnes i signalet), så brukes en forskjellig algoritme til å forlenge signalet. I slike tilfeller blir signalet som skal forlenges analysert med henblikk på de korresponderende lineære prediksjonskoeffisienter, og tilfeldig støy sendes gjennom et lineært prediksjonskoeffisientfilter ved bruk av disse koeffisienter for å generere et syntetiske ustemt signal som skal flettes med signalet som skal forlenges. Energien i det syntetiserte signal avledes fra signalet som brukes til forlengelsen. Denne avleding kan generelt inkludere bryting av en ramme av ustemt tale på midten, og forlengelse av og fletting av hver halvdel. Et eksempel på en slik avleding er illustrert på figur 11. I det viste eksempel er et ustemt talesignal 1110 tilgjengelig for en ramme, og et signal 1120 mangler for en etterfølgende ramme. Det ustemte talesignal brytes i to overlappende tilgjengelige sampelsignaler eller segmenter 1130, 1140. De tilgjengelige sampler 1130 til venstre inkluderer den venstre halvdel av det tilgjengelige signal 1110 pluss noen få etterfølgende sampler fra den høyre halvdel for glatting. For eksempel kan det brukes førti eller åtti etterfølgende sampler. Likeledes, de tilgjengelige sampler til høyre inkluderer den høyre halvdel av det tilgjengelige signal 1110 pluss noen få forangående sampler for glatting.
Avledede sampler 1150 til venstre dannes basert på energien i de tilgjengelige sampler 1130 til venstre. Spesifikt blir de venstre tilgjengelige sampler 1130 analysert for å produsere korresponderende lineære prediksjonskoeffisienter. Tilfeldig støy genereres og sendes gjennom et lineært prediksjonskoeffisientfilter ved bruk av disse korresponderende koeffisienter. Det resulterende signal skaleres slik at det har en signalenergi som er lik signalenergien i de tilgjengelige sampler 1130, hvilket genererer et syntetisk ustemt signal, eller venstre avledede sampler 1150.
Likeledes, høyre avledede sampler 1160 dannes basert på energien i de høyre tilgjengelige sampler 1140. Spesifikt blir de høyre tilgjengelige sampler 1140 analysert for å produsere korresponderende lineære prediksjonskoeffisienter. Tilfeldig støy genereres og sendes gjennom et lineært prediksjonskoeffisientfilter ved bruk av disse korresponderende koeffisienter. Det resulterende signal skaleres slik at det har en signalenergi som er lik signalenergien i de tilgjengelige sampler 1140, hvilket genererer et syntetiske ustemt signal, eller høyre avledede sampler 1160.
Som illustrert på figur 11 er de fire sett av sampler ordnet fra venstre til høyre som følger: venstre tilgjengelige sampler 1130, venstre avledede sampler 1150, høyre avledede sampler 1160 og høyre tilgjengelige sampler 1140. De overlappende signaler 1130, 1140, 1150, 1160 flettes ved bruk av vektingsvinduer 1170 for å produsere et resulterende signal 1180. Varigheten av det resulterende signal 1180 er tilstrekkelig til å dekke avspillingstiden for det tilgjengelige signal 1110 og det manglede signal 1120. Det resulterende signal 1180 kan også gjentas for ytterligere å forlenge signalet hvis etterfølgende rammer også mangler. Det antas at denne teknikk er i stand til å ha en god ytelse selv i mange situasjoner hvor energien innenfor den tilgjengelige ustemte ramme går vesentlig opp eller ned innenfor rammen.
Alternativt deler dekoderen den tilgjengelige informasjon i flere segmenter for avleding, fletting, osv.
I henhold til en tredje type av signalavhengig skjulingsteknikk, hvis både tidligere og fremtidig stemt lydinformasjon er tilgjengelig, så brukes toveis skjuling. Spesifikt, hvis gapet mellom tilgjengelig lydinformasjon ikke er for langt (for eksempel tre manglende rammer eller mindre), så kan informasjon fra begge sider brukes til å fylle gapet. Den tidligere informasjon forlenges en bit forbi midtpunktet mellom tidligere og fremtidige tilgjengelige rammer, og den fremtidige informasjon forlenges tilbake en bit forbi midtpunktet. For eksempel kan den tidligere og fremtidige informasjon forlenges tilnærmet en pitch-lengde forbi midtpunktet for stemt lyd, eller hver kan forlenges en forhåndsbestemt fast mengde, så som førti eller åtti sampler forbi midt punktet. Det ene eller begge signaler kan forlenges ved bruk av WSOLA-metoden, den ustemte skjulingsteknikk som er beskrevet ovenfor og/eller en annen metode. For eksempel, hvis tidligere informasjon er stemt og den fremtidige informasjon er ustemt, så kan den første teknikk som er beskrevet ovenfor brukes til å forlenge den tidligere informasjon, og den annen teknikk kan brukes til å forlenge den fremtidige informasjon. For stemte signaler kan en signaloverensstemmelsesrutine, så som den som er beskrevet ovenfor, brukes for å forsikre seg om at signalene flettes ved den beste lokalisering ved de tidligere og fremtidige ender og midtpunktet. Uansett om signalene er stemt, ustemt eller begge deler, kan signalene deretter flettes ved bruk av vektingsvinduer, så som vektingsvinduer som er designet til å holde signalenergien tilnærmet konstant i det flettede område. Støy blir typisk ikke tilført til signalet når det brukes slik toveis skjuling.
I den første eller annen foregående type av signalavhengige skjulingsteknikker, når det er en forlenget periode uten noen mottatte pakker, blir energien i det forlengede stemte eller ustemte signal som er dannet ved bruk av én av de teknikker som er beskrevet ovenfor gradvis redusert, og generert bakgrunnsstøy blir gradvis økt inntil det resulterende signal når et tidligere bestemt energinivå for bak-grunnsstøy. Dette hjelper til med å redusere de kunstige lyder, så som ringing og mekaniske lyder, som kan være et resultat av at signaler blir forlenget i lange tidsperioder. Denne teknikken kan være særlig nyttig i applikasjoner som bruker stemmeaktivitetsdeteksjon uten noen generering av komfortstøy. I slike applikasjoner, når stemmeaktivitet stopper (eksempelvis tar pauser mellom setninger, eller mens den andre personen snakker), stopper senderapplikasjonen simpelthen å sende pakker i den stille periode. I et slikt tilfelle, selv om dekoderen kan påtreffe manglende rammer i slike perioder, kan dekoderen gå tilbake til bakgrunnsstøy, hvilket er den ønskede respons under stille perioder. I en implementering begynner støy å bli gradvis introdusert etter at signalet har blitt forlenget over ca to rammer, og støyen blir typisk sansbar for en lytter etter ca fire rammer. På det tidspunkt signalet har blitt forlenget ca seks eller syv rammer, er det kun igjen bakgrunnsstøy. Disse tider kan justeres basert på den lydkvalitet som oppfattes av lyttere under forskjellige omstendigheter.
D. Pitch-dirring
Ved bruk av WSOLA-teknikken eller andre stemte taleforlengelsesteknikker, kan et signal produseres ved bruk av pitch-karakteristikaene for et forangående signalsegment, så som en forangående ramme eller rammer. Det resulterende signalsegment blir ofte brukt på ny for å forlenge signalet, enkelte ganger for å skjule tapet av mange pakker. Slik gjentatt forlengelse av et signal gjennom pitch-repetisjon (så som bruk av WSOLA-teknikken) kan resultere i ringing eller mekaniske lyder. Den vekting som brukes i WSOLA-teknikken kan i seg selv hjelpe til med å redusere slike effekter. Støyadderingsteknikker, så som de som er beskrevet ovenfor, kan ytterligere redusere slike effekter.
Ringing eller mekaniske lyder kan også reduseres ved addering av en tilfeldig, pseudotilfeldig eller annen justeringsfaktor til pitch-størrelsesavviket i etterfølgende sampler når signalet forlenges. Følgelig, istedenfor å forlenge signalet i pitch-sykluser med ekstakt størrelse, adderes en faktor til pitch-størrelsen, slik at signalet i større grad ligner naturlig tale, som sjelden har en eksakt fast pitch-rate. Når lengden av forlengelsen øker, kan faktoren økes i størrelse.
Denne teknikk kan implementeres ved bruk av en faktortabell eller -liste som inkluderer en sekvens av faktorer, hvor verdiområdet for faktorene gradvis øker i størrelse. Som et eksempel kan awiksjusteringsfaktoren være null sampler for den første pitch-syklus, negativ én for den annen syklus, positiv én for den tredje pitch-syklus, positiv to for den fjerde syklus, negativ én for den femte syklus, osv. Eller justeringsfaktoren kan velges tilfeldig/pseudotilfeldig fra det anvendbare verdiområde under dekoding. I en implementering er det maksimale verdiområde for de tilfeldige faktorer fra negativ tre sampler til positiv tre sampler. Størrelsen av verdiområdet kan imidlertid justeres basert på lyttetester. Alternativt kan det brukes andre teknikker til å produsere justeringsfaktorene og/eller andre verdiområder av justeringsfaktorer kan brukes.
De tre teknikker som er beskrevet ovenfor for å redusere de uønskede lydeffekter fra repeterende pitch-sykluser (WSOLA-vekting, støyaddering og pitch-dirring) kan brukes separat eller i kombinasjon. Gjentagende avstemming av parameterne for disse teknikker kan gjøres for å produsere mer ønskelige resultater i bestemte implementeringer.
E. Dekoderminnegjenvinning
Dekodere med begrenset internt minne eller intet internt minne er temmelig enkle å bruke i VolP-applikasjoner. I slike tilfeller gjør pakketap ikke at koderen og dekoderen kommer ut av synkronisering, fordi det ikke er noen signifikant avhengighet av minne (tidligere historie) om forutgående informasjon ved dekoding av inneværende informasjon. Slike stemmekodeker er imidlertid vanligvis ikke svært effektive med hensyn på bit rate. I kodeker hvor bit raten er lavere, er det typisk sterk minneavhengighet som introduseres for å forbedre kvalitet ved disse lavere bit rater. Dette behøver i enkelte applikasjoner ikke å være et problem, så som komprimering for arkivformål. Imidlertid, når slike kodeker brukes i andre applikasjoner, så som ved VolP-applikasjoner, blir pakker ofte mistet. Minneavhengighet, så som minneavhengighet av den adaptive kodebok for produsering av et eksitasjonssignal, kan forårsake forlengede forvrengninger i dekoderen utover den mistede pakke.
Den følgende teknikk som kan brukes til å produseres substituttinformasjon til bruk som et historisk signal av etterfølgende pakker er generelt illustrert på figur 12. Alternativt brukes det andre og/eller ytterligere teknikker.
Først genererer 1210 dekoderen et skjulingssignal for en eller flere manglende rammer. På denne måte blir den eller de manglende rammer skjult opp til den del av signalet som er tilgjengelig fra den neste mottatte pakke. De ovenstående signalavhengige teknikker kan for eksempel brukes til slik skjuling. Alternativt kan andre skjulingsteknikker brukes for skjuling.
Dekoderen gjennomfører deretter i det minste delvis koding (og rekonstruksjon) 1220 på skjulingssignalet. For eksempel sender dekoderen det skjulingssignal som er produsert ved hjelp av en eller flere skjulingsteknikker gjennom en forenklet imitert koder (som befinner seg i dekoderen) for å regenerere dekoderens interne tilstand. Dette øker typisk hastigheten ved gjenvinning fra manglende ramme(r) i etter-følgende dekoding.
I en spesifikk implementering blir skjulingssignalet prosessert for å produsere et korresponderende restsignal som kan settes i stedet for den manglende eksitasjonssignalhistorie. Dette kan gjøres ved å sende skjulingssignalet gjennom det inverse av et lineært prediksjonssyntesefilter (eller med andre ord et lineært prediksjonsanalysefilter). I syntesefilterteknikken (så som i komponenten 540 som er beskrevet ovenfor) prosesserer filteret et rekonstruert restsignal ved bruk av rekon struerte lineære prediksjonskoeffisienter for å produsere et kombinert eller syntetisert signal. I kontrast til dette prosesserer det lineære prediksjonsanalysefilter ifølge denne teknikk et dekodergenerert signal (her skjulingssignalet) ved bruk av kjente lineære prediksjonskoeffisienter for å produsere et substitutt restsignal.
De lineære prediksjonskoeffisienter i den forutgående ramme kan brukes i det lineære prediksjonsanalysefilter. Alternativt kan nye lineære prediksjonskoeffisienter beregnes ved analysering av skjulingssignalet. Dette kan gjøres ved bruk av de teknikker som er beskrevet ovenfor med henvisning til den lineære prediksjons-analysekomponent 330. Det antas at bedre resultater oppnås ved beregning av nye lineære prediksjonskoeffisienter for skjulingssignalet. Det er imidlertid enklere å bruke de lineære prediksjonskoeffisienter fra den forutgående ramme. Alternativt bruker dekoderen en kombinasjon av slike lineære prediksjonskoeffisienter, eller en annen metode, så som båndbreddeekspansjon.
Det signal som er et resultat av denne teknikk kan brukes av dekoderen som minne for etterfølgende adaptive kodebokberegninger, istedenfor å bruke eksitasjonshistorien til den eller de manglende rammer.
Fordi skjulingssignalet vanligvis ikke er perfekt, approksimerer kun substitutt-restsignalet som produseres av dekoderen likevel det egentlige minne, eller historie, som ville ha blitt dannet dersom den eller de manglende rammer hadde blitt dekodet. Likevel er dekoderen imidlertid i stand til å konvertere tilbake til den korrekte tilstand mye raskere enn under omstendigheter hvor eksitasjonshistorien for manglende rammer er ikke-eksisterende. Det antas således at denne teknikk signifikant kan forbedre kvaliteten til det dekodede signal som følger etter tapte pakker.
Denne teknikk kan også brukes med henblikk på toveis skjuling hvis den neste ramme som følger etter den eller de manglende rammer har signifikant minneavhengighet. I dette tilfelle kan toveis skjuling oppnås som følger: Som nummer én, gjennomfør enveis skjuling for den eller de manglende rammer; som nummer to, bruk denne skjulingen til å regenerere et approksimert minne for den neste ramme; som nummer tre, dekod den neste ramme ved bruk av det regenererte minne; og som nummer fire, gjennomfør toveis skjuling av den eller de manglende rammer ved bruk av den neste ramme og den ramme som kommer foran den eller de manglende rammer. Det antas at slik toveis skjuling vil produsere bedre resultater enn kun å bruke enveis skjuling eller toveis skjuling uten noe minne for den neste ramme.
Etter å ha beskrevet og illustrert prinsippene for vår oppfinnelse med henvisning til beskrevne utførelser, vil det innses at de beskrevne utførelser kan modifiseres i arrangement og detalj uten å avvike fra slike prinsipper. Det bør forstås at de programmer, prosesser eller fremgangsmåter som her er beskrevet ikke er relatert til eller begrenset av noen bestemt type av databehandlingsomgivelse, med mindre annet er angitt. Forskjellige typer av databehandlingsomgivelser for generelt eller spesielt formål kan brukes sammen med eller gjennomføre operasjoner i samsvar med den lære som her er beskrevet. Elementer av de beskrevne utførelser som er vist i programvare kan implementeres i maskinvare og omvendt.
I lys av de mange mulige utførelser som prinsippene for vår oppfinnelse kan anvendes på, krever vi som vår oppfinnelse alle slike utførelser som kan komme innenfor omfang og idé for de følgende krav og deres ekvivalenter.
Claims (10)
1. Datamaskinimplementert fremgangsmåte omfattende: prosessering av en bit strøm for et lydsignal, omfattende, dersom én eller flere manglende rammer påtreffes under prosessering av bit strømmen,
basert i det minste delvis på én eller flere faktorer, velging av en skjulingsteknikk fra blant flere tilgjengelige signalavhengige skjulingsteknikker basert på en klassifikasjon av en tilgjengelig ramme forut for den ene eller de flere manglende rammer, og en klassifikasjon av en tilgjengelig generering av rammen som følger etter den ene eller de flere manglende rammer i lydsignalet, og en telling av den ene eller de flere manglende rammer, idet tellingen angir hvor mange fort-løpende rammer som mangler, hvor klassifikasjonen av den tilgjengelige forutgående ramme er én i et sett av mulige klassifikasjoner omfattende stemt og ustemt;
gjennomføring av den valgte skjulingsteknikk; og utmating av resultatet, hvor: hvis klassifikasjonen av den tilgjengelige forutgående ramme er stemt, så omfatter den valgte skjulingsteknikk bruk av en pitch-forlengelsesteknikk for å generere et skjulingssignal; hvis klassifikasjonen av den tilgjengelige forutgående ramme er ustemt, så omfatter den valgte skjulingsteknikk generering av skjulingssignalet basert i det minste delvis på energi i den tilgjengelige forutgående ramme; hvis klassifikasjonen av den tilgjengelige forutgående ramme og klassifikasjonen av den tilgjengelige ramme som følger etter den ene eller de flere manglende rammer i lydsignalet begge er stemte, og tellingen av den ene eller de flere manglende rammer er mindre enn en terskelverdi, så omfatter den valgte skjulingsteknikk toveis skjuling; og hvis klassifikasjonen av den tilgjengelige forutgående ramme er stemt, og tellingen av den ene eller de flere manglende rammer er større enn en terskelverdi, så omfatter den valgte skjulingsteknikk enveis skjuling.
2. Fremgangsmåte som angitt i krav 1, hvor hvis klassifikasjonen av den tilgjengelige forutgående ramme er stemt, så omfatter den valgte skjulingsteknikk addering av støy til et skjulingssignal hvis skjulingssignalet er lengre enn en terskelvarighet.
3. Fremgangsmåte som angitt i krav 1, hvor hvis klassifikasjonen av den tilgjengelige forutgående ramme er ustemt, så omfatter den valgte skjulingsteknikk: identifisering av flere segmenter i den tilgjengelige forutgående ramme; anvendelse av de flere forutgående segmenter til å generere flere skjulings-signalsegmenter; og fletting av de flere forutgående rammesegmenter sammen med flere skjulings-segmenter for å generere et skjulingssignal.
4. Fremgangsmåte som angitt i krav 1, hvor den valgte skjulingsteknikk omfatter: generering av et forlengelsessignal; og addering av støy til forlengelsessignalet for å produsere et skjulingssignal.
5. Fremgangsmåte som angitt i krav 4, hvor at den valgte skjulingsteknikk videre omfatter: gradvis redusering av energi i forlengelsessignalet langs i det minste en del av lydsignalet; og gradvis øking av energi i støyen langs i det minste delen av lydsignalet.
6. Fremgangsmåte som angitt i krav 1, hvor de flere tilgjengelige signalavhengige skjulingsteknikker inkluderer en enveis skjulingsteknikk for stemt innhold, en enveis skjulingsteknikk for ustemt innhold, en toveis skjulingsteknikk og en fading-skjulingsteknikk.
7. Fremgangsmåte som angitt i krav 1, hvor generering av et skjulingssignal er basert i det minste delvis på pitch-sykluser i én eller flere forangående rammer, inkludert introdusering av pitch-dirring, hvor introduseringen av pitch-dirring inkluderer addering av tilfeldige eller pseudotilfeldige faktorer til pitch for skjulingssignalet.
8. Fremgangsmåte som angitt i krav 7, hvor de tilfeldige eller pseudotilfeldige pitch-avviksjusteringsfaktorer inkluderer positive og negative verdier.
9. Fremgangsmåte som angitt i krav 7, hvor en separat tilfeldig eller pseudotilfeldig pitch-avviksjusteringsfaktor anvendes på hver av flere deler av skjulingssignalet.
10. Fremgangsmåte som angitt i krav 7, hvor introduseringen inkluderer øking av pitch-dirring ettersom avstanden bort fra den ene eller de flere forangående rammer øker.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/142,602 US7831421B2 (en) | 2005-05-31 | 2005-05-31 | Robust decoder |
PCT/US2006/013010 WO2006130236A2 (en) | 2005-05-31 | 2006-04-05 | Robust decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
NO20075776L NO20075776L (no) | 2008-02-28 |
NO339756B1 true NO339756B1 (no) | 2017-01-30 |
Family
ID=37464579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO20075776A NO339756B1 (no) | 2005-05-31 | 2007-11-12 | Robust dekoder |
Country Status (10)
Country | Link |
---|---|
US (3) | US7831421B2 (no) |
EP (1) | EP1886307B1 (no) |
JP (1) | JP5072835B2 (no) |
KR (2) | KR101265874B1 (no) |
CN (1) | CN101268351B (no) |
AU (1) | AU2006252972B2 (no) |
CA (1) | CA2607952C (no) |
HK (1) | HK1124660A1 (no) |
NO (1) | NO339756B1 (no) |
WO (1) | WO2006130236A2 (no) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315815B1 (en) * | 1999-09-22 | 2008-01-01 | Microsoft Corporation | LPC-harmonic vocoder with superframe structure |
CA2399706C (en) * | 2000-02-11 | 2006-01-24 | Comsat Corporation | Background noise reduction in sinusoidal based speech coding systems |
AU2002220286A1 (en) * | 2000-12-19 | 2002-07-01 | Azoteq (Pty) Ltd. | Method of and apparatus for transferring data |
US7668712B2 (en) * | 2004-03-31 | 2010-02-23 | Microsoft Corporation | Audio encoding and decoding with intra frames and adaptive forward error correction |
US7359409B2 (en) * | 2005-02-02 | 2008-04-15 | Texas Instruments Incorporated | Packet loss concealment for voice over packet networks |
US7707034B2 (en) * | 2005-05-31 | 2010-04-27 | Microsoft Corporation | Audio codec post-filter |
US7177804B2 (en) | 2005-05-31 | 2007-02-13 | Microsoft Corporation | Sub-band voice codec with multi-stage codebooks and redundant coding |
US8620644B2 (en) * | 2005-10-26 | 2013-12-31 | Qualcomm Incorporated | Encoder-assisted frame loss concealment techniques for audio coding |
US7805297B2 (en) * | 2005-11-23 | 2010-09-28 | Broadcom Corporation | Classification-based frame loss concealment for audio signals |
FR2897977A1 (fr) * | 2006-02-28 | 2007-08-31 | France Telecom | Procede de limitation de gain d'excitation adaptative dans un decodeur audio |
KR100900438B1 (ko) * | 2006-04-25 | 2009-06-01 | 삼성전자주식회사 | 음성 패킷 복구 장치 및 방법 |
US7461106B2 (en) * | 2006-09-12 | 2008-12-02 | Motorola, Inc. | Apparatus and method for low complexity combinatorial coding of signals |
US8589233B2 (en) * | 2006-10-25 | 2013-11-19 | Microsoft Corporation | Arbitrage broker for online advertising exchange |
US7698166B2 (en) * | 2006-10-25 | 2010-04-13 | Microsoft Corporation | Import/export tax to deal with ad trade deficits |
US20080103952A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Specifying and normalizing utility functions of participants in an advertising exchange |
US20080103953A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Tool for optimizing advertising across disparate advertising networks |
US20080103902A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Orchestration and/or exploration of different advertising channels in a federated advertising network |
US20080103900A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Sharing value back to distributed information providers in an advertising exchange |
US20080103896A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Specifying, normalizing and tracking display properties for transactions in an advertising exchange |
US20080103897A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Normalizing and tracking user attributes for transactions in an advertising exchange |
US20080103837A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Risk reduction for participants in an online advertising exchange |
US20080103795A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Lightweight and heavyweight interfaces to federated advertising marketplace |
US20080103792A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Decision support for tax rate selection |
US20080103898A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Specifying and normalizing utility functions of participants in an advertising exchange |
US8788343B2 (en) * | 2006-10-25 | 2014-07-22 | Microsoft Corporation | Price determination and inventory allocation based on spot and futures markets in future site channels for online advertising |
US8533049B2 (en) * | 2006-10-25 | 2013-09-10 | Microsoft Corporation | Value add broker for federated advertising exchange |
US20080103955A1 (en) * | 2006-10-25 | 2008-05-01 | Microsoft Corporation | Accounting for trusted participants in an online advertising exchange |
KR101291193B1 (ko) | 2006-11-30 | 2013-07-31 | 삼성전자주식회사 | 프레임 오류은닉방법 |
US7949890B2 (en) * | 2007-01-31 | 2011-05-24 | Net Power And Light, Inc. | Method and system for precise synchronization of audio and video streams during a distributed communication session with multiple participants |
GB0704622D0 (en) * | 2007-03-09 | 2007-04-18 | Skype Ltd | Speech coding system and method |
EP1981170A1 (en) * | 2007-04-13 | 2008-10-15 | Global IP Solutions (GIPS) AB | Adaptive, scalable packet loss recovery |
US8428953B2 (en) * | 2007-05-24 | 2013-04-23 | Panasonic Corporation | Audio decoding device, audio decoding method, program, and integrated circuit |
US8185388B2 (en) * | 2007-07-30 | 2012-05-22 | Huawei Technologies Co., Ltd. | Apparatus for improving packet loss, frame erasure, or jitter concealment |
DK2186089T3 (en) * | 2007-08-27 | 2019-01-07 | Ericsson Telefon Ab L M | Method and apparatus for perceptual spectral decoding of an audio signal including filling in spectral holes |
JP2009063928A (ja) * | 2007-09-07 | 2009-03-26 | Fujitsu Ltd | 補間方法、情報処理装置 |
US8576096B2 (en) * | 2007-10-11 | 2013-11-05 | Motorola Mobility Llc | Apparatus and method for low complexity combinatorial coding of signals |
US20090234642A1 (en) * | 2008-03-13 | 2009-09-17 | Motorola, Inc. | Method and Apparatus for Low Complexity Combinatorial Coding of Signals |
US8639519B2 (en) * | 2008-04-09 | 2014-01-28 | Motorola Mobility Llc | Method and apparatus for selective signal coding based on core encoder performance |
DE102008042579B4 (de) | 2008-10-02 | 2020-07-23 | Robert Bosch Gmbh | Verfahren zur Fehlerverdeckung bei fehlerhafter Übertragung von Sprachdaten |
US8706479B2 (en) * | 2008-11-14 | 2014-04-22 | Broadcom Corporation | Packet loss concealment for sub-band codecs |
US8117039B2 (en) * | 2008-12-15 | 2012-02-14 | Ericsson Television, Inc. | Multi-staging recursive audio frame-based resampling and time mapping |
US8175888B2 (en) | 2008-12-29 | 2012-05-08 | Motorola Mobility, Inc. | Enhanced layered gain factor balancing within a multiple-channel audio coding system |
US8428938B2 (en) * | 2009-06-04 | 2013-04-23 | Qualcomm Incorporated | Systems and methods for reconstructing an erased speech frame |
WO2011065741A2 (ko) * | 2009-11-24 | 2011-06-03 | 엘지전자 주식회사 | 오디오 신호 처리 방법 및 장치 |
US8423355B2 (en) * | 2010-03-05 | 2013-04-16 | Motorola Mobility Llc | Encoder for audio signal including generic audio and speech frames |
US8428936B2 (en) * | 2010-03-05 | 2013-04-23 | Motorola Mobility Llc | Decoder for audio signal including generic audio and speech frames |
US8612242B2 (en) * | 2010-04-16 | 2013-12-17 | St-Ericsson Sa | Minimizing speech delay in communication devices |
US20110257964A1 (en) * | 2010-04-16 | 2011-10-20 | Rathonyi Bela | Minimizing Speech Delay in Communication Devices |
IL205394A (en) * | 2010-04-28 | 2016-09-29 | Verint Systems Ltd | A system and method for automatically identifying a speech encoding scheme |
KR20120032444A (ko) | 2010-09-28 | 2012-04-05 | 한국전자통신연구원 | 적응 코드북 업데이트를 이용한 오디오 신호 디코딩 방법 및 장치 |
WO2012044067A1 (ko) * | 2010-09-28 | 2012-04-05 | 한국전자통신연구원 | 적응 코드북 업데이트를 이용한 오디오 신호 디코딩 방법 및 장치 |
US9177570B2 (en) | 2011-04-15 | 2015-11-03 | St-Ericsson Sa | Time scaling of audio frames to adapt audio processing to communications network timing |
US8773291B2 (en) * | 2012-02-13 | 2014-07-08 | Intel Corporation | Audio receiver and sample rate converter without PLL or clock recovery |
US9985855B2 (en) | 2012-06-28 | 2018-05-29 | Dolby Laboratories Licensing Corporation | Call quality estimation by lost packet classification |
CN103888630A (zh) * | 2012-12-20 | 2014-06-25 | 杜比实验室特许公司 | 用于控制声学回声消除的方法和音频处理装置 |
US9437203B2 (en) * | 2013-03-07 | 2016-09-06 | QoSound, Inc. | Error concealment for speech decoder |
FR3004876A1 (fr) * | 2013-04-18 | 2014-10-24 | France Telecom | Correction de perte de trame par injection de bruit pondere. |
BR112015031606B1 (pt) | 2013-06-21 | 2021-12-14 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Aparelho e método para desvanecimento de sinal aperfeiçoado em diferentes domínios durante ocultação de erros |
CN108364657B (zh) | 2013-07-16 | 2020-10-30 | 超清编解码有限公司 | 处理丢失帧的方法和解码器 |
CN107818789B (zh) * | 2013-07-16 | 2020-11-17 | 华为技术有限公司 | 解码方法和解码装置 |
FR3013496A1 (fr) * | 2013-11-15 | 2015-05-22 | Orange | Transition d'un codage/decodage par transformee vers un codage/decodage predictif |
US9437211B1 (en) * | 2013-11-18 | 2016-09-06 | QoSound, Inc. | Adaptive delay for enhanced speech processing |
CN105336339B (zh) | 2014-06-03 | 2019-05-03 | 华为技术有限公司 | 一种语音频信号的处理方法和装置 |
WO2015190985A1 (en) * | 2014-06-13 | 2015-12-17 | Telefonaktiebolaget L M Ericsson (Publ) | Burst frame error handling |
CN106683681B (zh) | 2014-06-25 | 2020-09-25 | 华为技术有限公司 | 处理丢失帧的方法和装置 |
EP3176781A4 (en) * | 2014-07-28 | 2017-12-27 | Samsung Electronics Co., Ltd. | Method and apparatus for packet loss concealment, and decoding method and apparatus employing same |
US9972334B2 (en) * | 2015-09-10 | 2018-05-15 | Qualcomm Incorporated | Decoder audio classification |
WO2017129665A1 (en) * | 2016-01-29 | 2017-08-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for improving a transition from a concealed audio signal portion to a succeeding audio signal portion of an audio signal |
WO2017129270A1 (en) * | 2016-01-29 | 2017-08-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for improving a transition from a concealed audio signal portion to a succeeding audio signal portion of an audio signal |
CN107845385B (zh) | 2016-09-19 | 2021-07-13 | 南宁富桂精密工业有限公司 | 信息隐藏的编解码方法及*** |
US10354660B2 (en) * | 2017-04-28 | 2019-07-16 | Cisco Technology, Inc. | Audio frame labeling to achieve unequal error protection for audio frames of unequal importance |
US10803876B2 (en) * | 2018-12-21 | 2020-10-13 | Microsoft Technology Licensing, Llc | Combined forward and backward extrapolation of lost network data |
US10784988B2 (en) | 2018-12-21 | 2020-09-22 | Microsoft Technology Licensing, Llc | Conditional forward error correction for network data |
WO2020169756A1 (en) * | 2019-02-21 | 2020-08-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods for frequency domain packet loss concealment and related decoder |
CN111063362B (zh) * | 2019-12-11 | 2022-03-22 | 中国电子科技集团公司第三十研究所 | 一种数字语音通信噪音消除和语音恢复方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000063882A1 (en) * | 1999-04-19 | 2000-10-26 | At & T Corp. | Method and apparatus for performing packet loss or frame erasure concealment |
WO2002037475A1 (en) * | 2000-10-31 | 2002-05-10 | Nokia Corporation | Method and system for speech frame error concealment in speech decoding |
Family Cites Families (121)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US572433A (en) * | 1896-12-01 | eaton | ||
US4969192A (en) | 1987-04-06 | 1990-11-06 | Voicecraft, Inc. | Vector adaptive predictive coder for speech and audio |
US4802171A (en) | 1987-06-04 | 1989-01-31 | Motorola, Inc. | Method for error correction in digitally encoded speech |
US4815134A (en) | 1987-09-08 | 1989-03-21 | Texas Instruments Incorporated | Very low rate speech encoder and decoder |
CN1062963C (zh) | 1990-04-12 | 2001-03-07 | 多尔拜实验特许公司 | 用于产生高质量声音信号的解码器和编码器 |
US5664051A (en) | 1990-09-24 | 1997-09-02 | Digital Voice Systems, Inc. | Method and apparatus for phase synthesis for speech processing |
KR960013206B1 (ko) | 1990-12-31 | 1996-10-02 | 박헌철 | 조립식 원적외선 사우나 욕실 |
US5255339A (en) | 1991-07-19 | 1993-10-19 | Motorola, Inc. | Low bit rate vocoder means and method |
JPH05103012A (ja) * | 1991-10-11 | 1993-04-23 | Nec Corp | 受信フレームを補償する音声パケツト受信装置とその受信フレーム補償方法 |
US5734789A (en) | 1992-06-01 | 1998-03-31 | Hughes Electronics | Voiced, unvoiced or noise modes in a CELP vocoder |
JP2746033B2 (ja) * | 1992-12-24 | 1998-04-28 | 日本電気株式会社 | 音声復号化装置 |
JP2746039B2 (ja) | 1993-01-22 | 1998-04-28 | 日本電気株式会社 | 音声符号化方式 |
US5706352A (en) | 1993-04-07 | 1998-01-06 | K/S Himpp | Adaptive gain and filtering circuit for a sound reproduction system |
US5615298A (en) | 1994-03-14 | 1997-03-25 | Lucent Technologies Inc. | Excitation signal synthesis during frame erasure or packet loss |
US5717823A (en) | 1994-04-14 | 1998-02-10 | Lucent Technologies Inc. | Speech-rate modification for linear-prediction based analysis-by-synthesis speech coders |
JP3277682B2 (ja) | 1994-04-22 | 2002-04-22 | ソニー株式会社 | 情報符号化方法及び装置、情報復号化方法及び装置、並びに情報記録媒体及び情報伝送方法 |
JP3277705B2 (ja) | 1994-07-27 | 2002-04-22 | ソニー株式会社 | 情報符号化装置及び方法、並びに情報復号化装置及び方法 |
TW271524B (no) | 1994-08-05 | 1996-03-01 | Qualcomm Inc | |
JPH08123497A (ja) * | 1994-10-18 | 1996-05-17 | Matsushita Electric Ind Co Ltd | 音声信号補間装置 |
US5699477A (en) | 1994-11-09 | 1997-12-16 | Texas Instruments Incorporated | Mixed excitation linear prediction with fractional pitch |
US5751903A (en) | 1994-12-19 | 1998-05-12 | Hughes Electronics | Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset |
FR2734389B1 (fr) | 1995-05-17 | 1997-07-18 | Proust Stephane | Procede d'adaptation du niveau de masquage du bruit dans un codeur de parole a analyse par synthese utilisant un filtre de ponderation perceptuelle a court terme |
US5668925A (en) | 1995-06-01 | 1997-09-16 | Martin Marietta Corporation | Low data rate speech encoder with mixed excitation |
US5664055A (en) | 1995-06-07 | 1997-09-02 | Lucent Technologies Inc. | CS-ACELP speech compression system with adaptive pitch prediction filter gain based on a measure of periodicity |
US5699485A (en) | 1995-06-07 | 1997-12-16 | Lucent Technologies Inc. | Pitch delay modification during frame erasures |
US5774837A (en) | 1995-09-13 | 1998-06-30 | Voxware, Inc. | Speech coding system and method using voicing probability determination |
EP0763818B1 (en) | 1995-09-14 | 2003-05-14 | Kabushiki Kaisha Toshiba | Formant emphasis method and formant emphasis filter device |
US5835495A (en) | 1995-10-11 | 1998-11-10 | Microsoft Corporation | System and method for scaleable streamed audio transmission over a network |
TW321810B (no) | 1995-10-26 | 1997-12-01 | Sony Co Ltd | |
IT1281001B1 (it) | 1995-10-27 | 1998-02-11 | Cselt Centro Studi Lab Telecom | Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio. |
EP0788091A3 (en) | 1996-01-31 | 1999-02-24 | Kabushiki Kaisha Toshiba | Speech encoding and decoding method and apparatus therefor |
US5778335A (en) | 1996-02-26 | 1998-07-07 | The Regents Of The University Of California | Method and apparatus for efficient multiband celp wideband speech and music coding and decoding |
US6041345A (en) | 1996-03-08 | 2000-03-21 | Microsoft Corporation | Active stream format for holding multiple media streams |
SE506341C2 (sv) | 1996-04-10 | 1997-12-08 | Ericsson Telefon Ab L M | Metod och anordning för rekonstruktion av en mottagen talsignal |
JP3335841B2 (ja) | 1996-05-27 | 2002-10-21 | 日本電気株式会社 | 信号符号化装置 |
US5819298A (en) | 1996-06-24 | 1998-10-06 | Sun Microsystems, Inc. | File allocation tables with holes |
JP3583550B2 (ja) * | 1996-07-01 | 2004-11-04 | 松下電器産業株式会社 | 補間装置 |
CA2213909C (en) | 1996-08-26 | 2002-01-22 | Nec Corporation | High quality speech coder at low bit rates |
US6317714B1 (en) | 1997-02-04 | 2001-11-13 | Microsoft Corporation | Controller and associated mechanical characters operable for continuously performing received control data while engaging in bidirectional communications over a single communications channel |
US6134518A (en) | 1997-03-04 | 2000-10-17 | International Business Machines Corporation | Digital audio signal coding using a CELP coder and a transform coder |
US6292834B1 (en) | 1997-03-14 | 2001-09-18 | Microsoft Corporation | Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network |
US6131084A (en) | 1997-03-14 | 2000-10-10 | Digital Voice Systems, Inc. | Dual subframe quantization of spectral magnitudes |
US6728775B1 (en) | 1997-03-17 | 2004-04-27 | Microsoft Corporation | Multiple multicasting of multimedia streams |
IL120788A (en) | 1997-05-06 | 2000-07-16 | Audiocodes Ltd | Systems and methods for encoding and decoding speech for lossy transmission networks |
DE69840092D1 (de) | 1997-05-12 | 2008-11-20 | Texas Instruments Inc | Verfahren und vorrichtung für überrahmen-bitverteilung in einem diskret-mehrton-system (dmt) |
US6009122A (en) | 1997-05-12 | 1999-12-28 | Amati Communciations Corporation | Method and apparatus for superframe bit allocation |
US6058359A (en) | 1998-03-04 | 2000-05-02 | Telefonaktiebolaget L M Ericsson | Speech coding including soft adaptability feature |
FI973873A (fi) | 1997-10-02 | 1999-04-03 | Nokia Mobile Phones Ltd | Puhekoodaus |
US6263312B1 (en) | 1997-10-03 | 2001-07-17 | Alaris, Inc. | Audio compression and decompression employing subband decomposition of residual signal and distortion reduction |
WO1999021174A1 (en) | 1997-10-22 | 1999-04-29 | Matsushita Electric Industrial Co., Ltd. | Sound encoder and sound decoder |
US6199037B1 (en) | 1997-12-04 | 2001-03-06 | Digital Voice Systems, Inc. | Joint quantization of speech subframe voicing metrics and fundamental frequencies |
US5870412A (en) | 1997-12-12 | 1999-02-09 | 3Com Corporation | Forward error correction system for packet based real time media |
US6351730B2 (en) | 1998-03-30 | 2002-02-26 | Lucent Technologies Inc. | Low-complexity, low-delay, scalable and embedded speech and audio coding with adaptive frame loss concealment |
US6029126A (en) | 1998-06-30 | 2000-02-22 | Microsoft Corporation | Scalable audio coder and decoder |
US6823303B1 (en) | 1998-08-24 | 2004-11-23 | Conexant Systems, Inc. | Speech encoder using voice activity detection in coding noise |
US7072832B1 (en) | 1998-08-24 | 2006-07-04 | Mindspeed Technologies, Inc. | System for speech encoding having an adaptive encoding arrangement |
US6493665B1 (en) | 1998-08-24 | 2002-12-10 | Conexant Systems, Inc. | Speech classification and parameter weighting used in codebook search |
US6330533B2 (en) | 1998-08-24 | 2001-12-11 | Conexant Systems, Inc. | Speech encoder adaptively applying pitch preprocessing with warping of target signal |
US6385573B1 (en) | 1998-08-24 | 2002-05-07 | Conexant Systems, Inc. | Adaptive tilt compensation for synthesized speech residual |
FR2784218B1 (fr) | 1998-10-06 | 2000-12-08 | Thomson Csf | Procede de codage de la parole a bas debit |
US6438136B1 (en) | 1998-10-09 | 2002-08-20 | Microsoft Corporation | Method for scheduling time slots in a communications network channel to support on-going video transmissions |
US6289297B1 (en) | 1998-10-09 | 2001-09-11 | Microsoft Corporation | Method for reconstructing a video frame received from a video source over a communication channel |
JP4249300B2 (ja) | 1998-10-20 | 2009-04-02 | 株式会社エービーシー商会 | 装飾材の取付構造 |
JP4359949B2 (ja) | 1998-10-22 | 2009-11-11 | ソニー株式会社 | 信号符号化装置及び方法、並びに信号復号装置及び方法 |
US6310915B1 (en) | 1998-11-20 | 2001-10-30 | Harmonic Inc. | Video transcoder with bitstream look ahead for rate control and statistical multiplexing |
US6226606B1 (en) | 1998-11-24 | 2001-05-01 | Microsoft Corporation | Method and apparatus for pitch tracking |
US6311154B1 (en) | 1998-12-30 | 2001-10-30 | Nokia Mobile Phones Limited | Adaptive windows for analysis-by-synthesis CELP-type speech coding |
US6499060B1 (en) | 1999-03-12 | 2002-12-24 | Microsoft Corporation | Media coding for loss recovery with remotely predicted data units |
US6377915B1 (en) * | 1999-03-17 | 2002-04-23 | Yrp Advanced Mobile Communication Systems Research Laboratories Co., Ltd. | Speech decoding using mix ratio table |
US6460153B1 (en) | 1999-03-26 | 2002-10-01 | Microsoft Corp. | Apparatus and method for unequal error protection in multiple-description coding using overcomplete expansions |
US7117156B1 (en) | 1999-04-19 | 2006-10-03 | At&T Corp. | Method and apparatus for performing packet loss or frame erasure concealment |
US6952668B1 (en) * | 1999-04-19 | 2005-10-04 | At&T Corp. | Method and apparatus for performing packet loss or frame erasure concealment |
DE19921122C1 (de) * | 1999-05-07 | 2001-01-25 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Verschleiern eines Fehlers in einem codierten Audiosignal und Verfahren und Vorrichtung zum Decodieren eines codierten Audiosignals |
US6633841B1 (en) | 1999-07-29 | 2003-10-14 | Mindspeed Technologies, Inc. | Voice activity detection speech coding to accommodate music signals |
US6434247B1 (en) | 1999-07-30 | 2002-08-13 | Gn Resound A/S | Feedback cancellation apparatus and methods utilizing adaptive reference filter mechanisms |
US6721337B1 (en) | 1999-08-24 | 2004-04-13 | Ibiquity Digital Corporation | Method and apparatus for transmission and reception of compressed audio frames with prioritized messages for digital audio broadcasting |
US6775649B1 (en) * | 1999-09-01 | 2004-08-10 | Texas Instruments Incorporated | Concealment of frame erasures for speech transmission and storage system and method |
US6505152B1 (en) | 1999-09-03 | 2003-01-07 | Microsoft Corporation | Method and apparatus for using formant models in speech systems |
US6782360B1 (en) | 1999-09-22 | 2004-08-24 | Mindspeed Technologies, Inc. | Gain quantization for a CELP speech coder |
US7315815B1 (en) | 1999-09-22 | 2008-01-01 | Microsoft Corporation | LPC-harmonic vocoder with superframe structure |
US6772126B1 (en) | 1999-09-30 | 2004-08-03 | Motorola, Inc. | Method and apparatus for transferring low bit rate digital voice messages using incremental messages |
US6826527B1 (en) * | 1999-11-23 | 2004-11-30 | Texas Instruments Incorporated | Concealment of frame erasures and method |
US6621935B1 (en) | 1999-12-03 | 2003-09-16 | Microsoft Corporation | System and method for robust image representation over error-prone channels |
GB2358558B (en) | 2000-01-18 | 2003-10-15 | Mitel Corp | Packet loss compensation method using injection of spectrally shaped noise |
US6732070B1 (en) | 2000-02-16 | 2004-05-04 | Nokia Mobile Phones, Ltd. | Wideband speech codec using a higher sampling rate in analysis and synthesis filtering than in excitation searching |
US6693964B1 (en) | 2000-03-24 | 2004-02-17 | Microsoft Corporation | Methods and arrangements for compressing image based rendering data using multiple reference frame prediction techniques that support just-in-time rendering of an image |
US6757654B1 (en) | 2000-05-11 | 2004-06-29 | Telefonaktiebolaget Lm Ericsson | Forward error correction in speech coding |
US7246057B1 (en) * | 2000-05-31 | 2007-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | System for handling variations in the reception of a speech signal consisting of packets |
JP2002118517A (ja) | 2000-07-31 | 2002-04-19 | Sony Corp | 直交変換装置及び方法、逆直交変換装置及び方法、変換符号化装置及び方法、並びに復号装置及び方法 |
FR2813722B1 (fr) * | 2000-09-05 | 2003-01-24 | France Telecom | Procede et dispositif de dissimulation d'erreurs et systeme de transmission comportant un tel dispositif |
US6934678B1 (en) | 2000-09-25 | 2005-08-23 | Koninklijke Philips Electronics N.V. | Device and method for coding speech to be recognized (STBR) at a near end |
EP1199709A1 (en) | 2000-10-20 | 2002-04-24 | Telefonaktiebolaget Lm Ericsson | Error Concealment in relation to decoding of encoded acoustic signals |
JP4613412B2 (ja) * | 2000-10-27 | 2011-01-19 | ソニー株式会社 | 受信装置及びディジタルデータ復号方法 |
DE60126149T8 (de) | 2000-11-27 | 2008-01-31 | Nippon Telegraph And Telephone Corp. | Verfahren, einrichtung und programm zum codieren und decodieren eines akustischen parameters und verfahren, einrichtung und programm zum codieren und decodieren von klängen |
KR100830857B1 (ko) | 2001-01-19 | 2008-05-22 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 오디오 전송 시스템, 오디오 수신기, 전송 방법, 수신 방법 및 음성 디코더 |
US6614370B2 (en) | 2001-01-26 | 2003-09-02 | Oded Gottesman | Redundant compression techniques for transmitting data over degraded communication links and/or storing data on media subject to degradation |
US7151749B2 (en) | 2001-06-14 | 2006-12-19 | Microsoft Corporation | Method and System for providing adaptive bandwidth control for real-time communication |
US6658383B2 (en) | 2001-06-26 | 2003-12-02 | Microsoft Corporation | Method for coding speech and music signals |
US6941263B2 (en) | 2001-06-29 | 2005-09-06 | Microsoft Corporation | Frequency domain postfiltering for quality enhancement of coded speech |
US6879955B2 (en) | 2001-06-29 | 2005-04-12 | Microsoft Corporation | Signal modification based on continuous time warping for low bit rate CELP coding |
FR2828014B1 (fr) * | 2001-07-27 | 2003-10-31 | D Phy Espace Dev De Produits H | Antenne |
US7277554B2 (en) | 2001-08-08 | 2007-10-02 | Gn Resound North America Corporation | Dynamic range compression using digital frequency warping |
US7512535B2 (en) | 2001-10-03 | 2009-03-31 | Broadcom Corporation | Adaptive postfiltering methods and systems for decoding speech |
EP1435142B1 (en) | 2001-10-11 | 2008-04-09 | Interdigital Technology Corporation | System and method for utilizing unused capacity in the data field of a special burst |
US6785645B2 (en) | 2001-11-29 | 2004-08-31 | Microsoft Corporation | Real-time speech and music classifier |
US7027982B2 (en) | 2001-12-14 | 2006-04-11 | Microsoft Corporation | Quality and rate control strategy for digital audio |
US6934677B2 (en) | 2001-12-14 | 2005-08-23 | Microsoft Corporation | Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands |
US6647366B2 (en) | 2001-12-28 | 2003-11-11 | Microsoft Corporation | Rate control strategies for speech and music coding |
US6789123B2 (en) | 2001-12-28 | 2004-09-07 | Microsoft Corporation | System and method for delivery of dynamically scalable audio/video content over a network |
CA2388352A1 (en) | 2002-05-31 | 2003-11-30 | Voiceage Corporation | A method and device for frequency-selective pitch enhancement of synthesized speed |
CA2388439A1 (en) * | 2002-05-31 | 2003-11-30 | Voiceage Corporation | A method and device for efficient frame erasure concealment in linear predictive based speech codecs |
JP2004361731A (ja) * | 2003-06-05 | 2004-12-24 | Nec Corp | オーディオ復号装置及びオーディオ復号方法 |
JP2005107283A (ja) * | 2003-09-30 | 2005-04-21 | Tadashi Aoki | VoIP音声通信におけるパケット損失隠蔽方法、装置およびプログラム |
US7356748B2 (en) * | 2003-12-19 | 2008-04-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Partial spectral loss concealment in transform codecs |
EP1709734B1 (en) | 2004-01-19 | 2008-05-21 | Nxp B.V. | System for audio signal processing |
US7668712B2 (en) | 2004-03-31 | 2010-02-23 | Microsoft Corporation | Audio encoding and decoding with intra frames and adaptive forward error correction |
US7362819B2 (en) | 2004-06-16 | 2008-04-22 | Lucent Technologies Inc. | Device and method for reducing peaks of a composite signal |
CA2574101C (en) * | 2004-07-19 | 2013-06-25 | Eberle Design, Inc. | Methods and apparatus for an improved signal monitor |
CA2603246C (en) | 2005-04-01 | 2012-07-17 | Qualcomm Incorporated | Systems, methods, and apparatus for anti-sparseness filtering |
US7177804B2 (en) | 2005-05-31 | 2007-02-13 | Microsoft Corporation | Sub-band voice codec with multi-stage codebooks and redundant coding |
US7707034B2 (en) | 2005-05-31 | 2010-04-27 | Microsoft Corporation | Audio codec post-filter |
-
2005
- 2005-05-31 US US11/142,602 patent/US7831421B2/en active Active
- 2005-08-04 US US11/197,792 patent/US7590531B2/en not_active Expired - Fee Related
-
2006
- 2006-04-05 CA CA2607952A patent/CA2607952C/en active Active
- 2006-04-05 WO PCT/US2006/013010 patent/WO2006130236A2/en active Application Filing
- 2006-04-05 JP JP2008514632A patent/JP5072835B2/ja not_active Expired - Fee Related
- 2006-04-05 AU AU2006252972A patent/AU2006252972B2/en active Active
- 2006-04-05 CN CN2006800184653A patent/CN101268351B/zh active Active
- 2006-04-05 KR KR1020077026019A patent/KR101265874B1/ko active IP Right Grant
- 2006-04-05 KR KR1020127033153A patent/KR101344110B1/ko active IP Right Grant
- 2006-04-05 EP EP06749502.8A patent/EP1886307B1/en active Active
-
2007
- 2007-11-12 NO NO20075776A patent/NO339756B1/no unknown
-
2009
- 2009-03-17 HK HK09102520.6A patent/HK1124660A1/xx unknown
- 2009-07-14 US US12/502,984 patent/US7962335B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000063882A1 (en) * | 1999-04-19 | 2000-10-26 | At & T Corp. | Method and apparatus for performing packet loss or frame erasure concealment |
WO2002037475A1 (en) * | 2000-10-31 | 2002-05-10 | Nokia Corporation | Method and system for speech frame error concealment in speech decoding |
Also Published As
Publication number | Publication date |
---|---|
US7831421B2 (en) | 2010-11-09 |
WO2006130236A2 (en) | 2006-12-07 |
KR101265874B1 (ko) | 2013-05-20 |
KR20080011186A (ko) | 2008-01-31 |
HK1124660A1 (en) | 2009-07-17 |
CA2607952C (en) | 2016-03-22 |
CN101268351A (zh) | 2008-09-17 |
WO2006130236A3 (en) | 2008-02-28 |
EP1886307A4 (en) | 2009-07-08 |
US7962335B2 (en) | 2011-06-14 |
CA2607952A1 (en) | 2006-12-07 |
US7590531B2 (en) | 2009-09-15 |
AU2006252972B2 (en) | 2011-02-03 |
JP5072835B2 (ja) | 2012-11-14 |
US20090276212A1 (en) | 2009-11-05 |
CN101268351B (zh) | 2011-07-06 |
NO20075776L (no) | 2008-02-28 |
EP1886307A2 (en) | 2008-02-13 |
US20060271359A1 (en) | 2006-11-30 |
KR20130007670A (ko) | 2013-01-18 |
AU2006252972A1 (en) | 2006-12-07 |
US20060271373A1 (en) | 2006-11-30 |
JP2008542838A (ja) | 2008-11-27 |
EP1886307B1 (en) | 2016-03-30 |
KR101344110B1 (ko) | 2013-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NO339756B1 (no) | Robust dekoder | |
TWI413107B (zh) | 具有多重階段編碼簿及冗餘編碼之子頻帶語音編碼/解碼的方法 | |
US7668712B2 (en) | Audio encoding and decoding with intra frames and adaptive forward error correction | |
NO340411B1 (no) | Audiokoding etterfilter | |
US11817107B2 (en) | Phase reconstruction in a speech decoder | |
US20080114592A1 (en) | Low complexity no delay reconstruction of missing packets for lpc decoder | |
US10847172B2 (en) | Phase quantization in a speech encoder | |
MX2007015190A (en) | Robust decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CHAD | Change of the owner's name or address (par. 44 patent law, par. patentforskriften) |
Owner name: MICROSOFT TECHNOLOGY LICENSING, US |