DE69912860T2 - Mehrfachinstanzimplementierung von sprachkodierer-dekodierern - Google Patents

Mehrfachinstanzimplementierung von sprachkodierer-dekodierern Download PDF

Info

Publication number
DE69912860T2
DE69912860T2 DE69912860T DE69912860T DE69912860T2 DE 69912860 T2 DE69912860 T2 DE 69912860T2 DE 69912860 T DE69912860 T DE 69912860T DE 69912860 T DE69912860 T DE 69912860T DE 69912860 T2 DE69912860 T2 DE 69912860T2
Authority
DE
Germany
Prior art keywords
memory
codec
dsp
segments
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69912860T
Other languages
English (en)
Other versions
DE69912860D1 (de
Inventor
Wenshun Palatine TIAN
Yuen Foo LEONG
Mario Antonio ALVAREZ-TINOCO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Asia Pacific Pte Ltd
Original Assignee
STMicroelectronics Asia Pacific Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Asia Pacific Pte Ltd filed Critical STMicroelectronics Asia Pacific Pte Ltd
Application granted granted Critical
Publication of DE69912860D1 publication Critical patent/DE69912860D1/de
Publication of DE69912860T2 publication Critical patent/DE69912860T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft die Audiocodierung und ist insbesondere im Gebiet der Telekommunikation und des Internets anwendbar, beispielsweise bei welchem mehrwegige Sprachcodierer unter Verwendung einer einzigen digitalen Signalprozessor- (DSP) Vorrichtung implementiert werden.
  • HINTERGRUND
  • Wegen dem rechnerisch kostspieligen Wesen des Codierens und Decodierens eines Echtzeittons, wurden üblicherweise Audiocodierer/-decodierer ("Codecs") durch spezialisierte, integrierte Schaltkreischips implementiert. WO 99/10807 offenbart z. B. wie vielseitig eine Software verwendet werden kann, um eine Vielzahl an virtuellen Modems zu implementierten, welche gleichzeitig verwendet werden können. Völlig selbständig arbeitende Softwaremodems arbeiten vielseitig mit einer einzigen Codeliste. Zwei Softwaremodule bilden mit der DSP-Hardware die Schnittstelle. Die Modemsteuerschicht verarbeitet DSP-Petriebsarten, schafft und zerstört Modemverbindungen und überwacht die Modemtätigkeit. Die Leitung Ein/Ausgabe-Schicht ist für das Übertragen von Daten zum und vom DSP verantwortlich. Eine Alternative ist, die Audiocodecfunktionen in der Software (Firmware, Mikrocode, etc.) für den Betrieb auf einem universelleren digitalen Signalprozessor ("DSP") zu liefern. Mit dem Einsatz eines leistungsfähigeren digitalen Signalprozessors, ist es möglich, dass mehr als ein Codec unter Verwendung eines einzigen DSP-Chips schritthaltend implementiert werden kann. Beispielsweise kann es für einen leistungsfähigen DSP möglich sein, eine Vielzahl an unterschiedlichen Audiosignalen oder Kanä len in Echtzeit zu verarbeiten, um dadurch eine Vielzahl an Sprachverschlüsselungsgeräten ("Vocoder") unter Verwendung einer einzigen Verarbeitungsvorrichtung zu implementieren.
  • ZUSAMMEMASSUNG DER ERFINDUNG
  • Nach der vorliegenden Erfindung ist ein Verfahren zum Implementieren einer Vielzahl an Codierern und/oder Decodierern (Codecs) geliefert, welches eine einzige digitale Signalprozessor- (DSP) Vorrichtung anwendet, wobei die Funktion jedes Codecs durch den DSP nach einem Operationscodeprogramm ausgeführt wird, wobei das Verfahren folgende Schritte umfasst:
    Schaffen eines Operationscodeprogramms, welches in einem ersten Speicher zur Steuerung des DSP als Codec zu funktionieren gespeichert ist;
    Schaffen eines zweiten Speichers, welcher eine Vielzahl an Speichersegmenten umfasst;
    Implementieren einer Vielzahl an Codecs mittels des DSP durch das mehrmalige Ausführen des Operationscodeprogramms im ersten Speicher und in ablaufinvarianten Vorgängen, wobei jeder Codecvorgang mit Zugang zu einem entsprechenden separaten Speichersegment im zweiten Speicher zum Speichern von Daten versehen ist, welche beim Encodieren/Decodieren eines entsprechenden separaten Datenstroms verwendet werden.
  • Die vorliegende Erfindung liefert auch eine Datencodier- und/oder Decodieranlage, in welcher eine Vielzahl an Codierern bzw. Encodierern und/oder Decodierern (Codecs) mittels einer einzigen digitalen Signalprozessor- (DSP) Vorrichtung implementiert sind, welche folgendes umfasst:
    einen digitalen Signalprozessor (DSP);
    einen ersten an den DSP gekoppelten Speicher, welcher ein Operationscodeprogramm enthält, wobei die Funktion jedes Codecs durch den DSP bei Betrieb nach dem Operationscodeprogramm ausgeführt wird;
    einen zweiten an den DSP gekoppelten Speicher, welcher unterteilt ist, um eine Vielzahl an separaten Speichersegmenten zu umfassen;
    wobei eine Vielzahl an Codecs mittels des DSP durch das mehrmalige Ausführen des Operationscodeprogramms im ersten Speicher und in ablaufinvarianten Vorgängen implementiert ist, wobei jeder Codecvorgang mit Zugang zu einem entsprechenden separaten Speichersegment im zweiten Speicher zum Speichern von Daten versehen ist, welche beim Encodieren/Decodieren entsprechender separater Datenströme verwendet werden.
  • Vorzugsweise ist auch ein dritter Speicher vorgesehen, welcher durch jeden Codecvorgang für geteiltes Speichern temporärer Variablen und Datenpufferung beim Encodieren/Decodieren der entsprechenden separaten Datenströme zugänglich ist.
  • Jeder Codecvorgang greift vorzugsweise auf das entsprechende Speichersegment mittels indirekter Adressierung zu, welche auf mindestens einem Indexregister basiert, wobei mindestens ein Indexregister für jeden Codecvorgang eingestellt ist, um die Adressierung von Variablen für diesen Codecvorgang an das entsprechende Speichersegment zu ändern.
  • In einer bevorzugten Form der Erfindung, ist die Vielzahl an Speichersegmenten im zweiten Speicher benachbart und das zumindest eine Indexregister ist für jeden Codecvorgang nach einer Distanzadresse eingestellt, welche auf dem Unterschied von Adressen aus einem ersten der Speichersegmente zu einem Speichersegment basiert, welches diesem Codecvorgang ent spricht. Vorzugsweise weisen alle Speichersegmente im zweiten Speicher die gleiche Größe auf.
  • In einer Form der Erfindung, ist der erste Speicher mit einer Vielzahl an Operationscodeprogrammen zum Implementieren verschiedener Codecarten versehen, wobei unterschiedliche Codecvorgänge aus den verschiedenen Codecarten ausgewählt werden können. Dann weisen vorzugsweise alle Speichersegmente im zweiten Speicher die gleiche Größe auf und die Speichersegmentgröße wird nach dem durch irgendeinen der Vielzahl an unterschiedlichen Codecarten benötigten Maximalspeicher ausgewählt.
  • Diese Methodenlehre kann verwendet werden, um den bestehenden Code des DSP-Aufbaus zu verändern oder einen neuen Algorithmus mit einem mehrfachen Vorgangsmerkmal zu implementieren. Die Mehrfachinstanz- bzw. Mehrfachvorgangsimplementierung kann. verwendet werden, um Mehrkanalsignale unter Verwendung eines Softwaremoduls zu verarbeiten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Im Folgenden wird die Erfindung nur mittels eines Beispiels mit Bezug auf die bevorzugten Ausführungsformen derselben und den beiliegenden Zeichnungen detaillierter erklärt werden, in welchen:
  • 1 ein Blockdiagramm einer einfachen Audioencodierungsanlage ist, welche einen DSP anwendet;
  • 2 ein Blockdiagramm einer Datenspeicherstruktur für eine erste Ausführungsform der vorliegenden Erfindung ist; und
  • 3 ein Blockdiagramm einer Datenspeicherstruktur für eine zweite Ausführungsform der Erfindung ist, welche eine Vielzahl an verschiedenen Codecarten anwendet.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die im Folgenden beschriebenen Ausführungsformen der Erfindung sind im Zusammenhang mit Audiocodierern durch die Operationscodes in der Form von Software, Formware oder Mikrocode implementiert, welche auf einem universellen digitalen Signalprozessorchip arbeiten. Die beschriebenen Ausführungsformen betreffen insbesondere die Implementierung von Sprachcodecs der Art, welche Gegenstand der ITU-T Empfehlung G.729 ist. Es wird jedoch denjenigen mit gewöhnlichen technischen Fähigkeiten bewusst sein, dass die vorliegende Erfindung nicht notwendigerweise auf solch eine Umgebung begrenzt ist und weiter verwendet werden kann, um Codierer für andere Formen von Echtzeit-Datenströmen zu implementieren, welche andere Formen von Sprachübertragung und/oder Faksimileübertragung oder Speichercodieren enthalten.
  • Eine einfache Audioencodieranlage 10, welche auf einem Universal-DSP basiert, ist in Form eines Blockdiagramms in 1 veranschaulicht. Die Audiocodieranlage 10 umfasst einen digitalen Signalprozessor (DSP) 12, welcher gekoppelt ist, um Eingabedaten zu empfangen und codierte Ausgabesignale zu erzeugen. Der DSP 10 ist an einen Massenspeicher 14 gekoppelt. Der Speicher 14 versorgt den DSP 12 mit Daten, um zu ermöglichen, dass das Codieren der empfangenen Eingabedaten stattfindet. Der Speicher 14 kann mehrere verschieden Formen von Daten enthalten, einschließlich dauerhaft im Speicher gespeicherten Nur-Lese-Daten und temporären Daten, welche vorübergehend während Codierbetrieben gespeichert werden. Der Speicher 14 kann auch gespeicherte Operationscodes enthalten, welche vom DSP verwendet werden, um das Codieren auszuführen, welches normalerweise permanent in der Nur-Lese-Form im Speicher gespeichert werden würde.
  • Eine der Überlegungen, mit welcher man sich beim Implemen tieren von Mehrfachcodecs auf einen einzigen DSP durch das Betreiben. von Mehrfachvorgängen der DSP-Operationscodes, welche die Codecoperation steuern, befassen muss ist, die Anordnung des Massenspeichers, so dass jeder Vorgang des Codec eine effiziente Verwendung des Speichers aufweisen kann und nicht andere Codecvorgänge stört, welche gleichzeitig verwendet werden. Nach einer Ausführungsform der vorliegenden Erfindung wird dies durch das Anordnen des Datenspeichers erreicht, wie im Blockdiagramm der 2 veranschaulicht. Diese beispielhafte Ausführungsform betrifft die Implementierung eines Mehrfachvorgangsvocoders mit 4 Kanälen auf einen einzigen DSP. Wie in 2 gezeigt, ist der Datenspeicher in unterschiedliche Teile aufgeteilt, welche in diesem Fall einen Festwertspeicher (ROM), einen lokalen RAM und einen statischen RAM umfassen. Der ROM wird verwendet, um alle Nur-Lese-Daten zu speichern, welche die Programmoperationscodes und ähnliches enthalten können. Der lokale RAM wird zum Speichern der temporären Variablen und zum Datenpufferbetrieb verwendet. Der statische RAM wird andererseits zum Speichern aller globalen und historischen Variablen verwendet, welche für die Codieroperationen benötigt werden, beispielsweise Daten, welche zum Verarbeiten des nächsten Rahmens der Ausgabe verwendet werden. Wie im Blockdiagramm gezeigt, ist in diesem Fall der statische RAM in separate Bereiche für jeden DSP-Codecvorgang aufgeteilt. Folglich ist der statische RAMi für die Verwendung nur durch den ith – Codierer (i = 1, 2, 3, 4) eingeschränkt, während der Daten-ROM und der lokale ROM von allen vier Kanälen geteilt wird.
  • Die bevorzugte Form der vorliegenden Erfindung umfasst die Aufteilung des Datenspeichers basierend auf ihren Eigenschaften und mittels eines Indexregisters oder eines Indexmodifizierers, um die Adresse der statischen RAM-Segmentdaten zu ändern, welche für jeden Codecvorgang verwendet werden. Der Programmcodespeicher kann wie üblich angeordnet werden. Wenn jedoch der Programmspeicher zum Zugreifen auf Daten verwendet wird, muss dieser Teil des Speichers auch auf die gleiche Weise aufgeteilt werden, wie der Datenspeicher, wie z. B. X oder Y. Diese Methodenlehre lässt eine leichte Handhabung des Betriebssystems oder Echtzeit-Kernroutinen aufgrund der Leichtigkeit des Öffnens und Schließens der verschiedenen Vorgänge zu.
  • Zuerst wird die Aufteilung des Datenspeichers nach seiner Zugriffseigenschaft erhalten, beispielsweise in der in 2 gezeigten Ausführungsform, welche ROM-Daten, temporäre, lokale RAM- und statische oder globale RAM-Segmente umfasst. Der Daten-ROM und der temporäre, lokale RAM werden für jeden Vorgang geteilt. Nur die statischen RAM-Segmente werden ausschließlich durch entsprechende Codecvorgänge verwendet. Auf dieses statische RAM-Segment wird unter Verwendung eines Indexregisters durch das Hinzufügen eines Distanzwertes zur Adresse des statischen RAM-Segments für einen besonderen Vorgang zugegriffen. Dies ist die Basis des Verfahrens zum Implementieren eines neuen Algorithmus für Mehrfachcodecvorgänge auf einen einzigen DSP. Mittels dieses Verfahrens, welches unten detaillierter beschrieben ist, können bestehende DSP-Programmoperationen relativ leicht geändert werden, um Mehrfachcodecvorgänge zu betreiben.
  • Wenn bestehende DSP-Codes für Mehrfachvorgansoperationen geändert werden, ist es nicht notwendig alle bestehenden Namen der Variablen unter Verwendung der Anordnung des Datenspeichers mit wie oben beschriebenen Aufteilungen zu ändern. Für den Zugriff auf den Speicher der Festdaten ist es nur notwendig, die bestehende Adressierbetriebsart zu ändern, um ein indirektes Adressierschema zu erhalten, welches das Index- und Adressregister verwendet. Ein Beispiel wird in der Tabelle unten gezeigt, welches einen von STMicroelectronics hergestellten DSP D950 verwendet. Für andere DSPs kann eine ähnliche Möglichkeit eingesetzt werden. In der Tabelle ist ax0 eines der Adressregister und sind ix1 und ix2 Indexregister.
  • Figure 00080001
  • Um die Adressierinformation an jeden Kanalvocoder zu übermitteln sollten zwei Indexregister für diesen ablaufinvarianten Zweck reserviert werden, nämlich IX2 und IY2, wenn ein DSP D950 verwendet wird. Dadurch wird die Adresse aller statischen Variablen, welche in den entsprechenden statischen RAM-Segmenten gespeichert sind, durch diese zwei Indexregister von Anfang an geändert.
  • Es gibt zwei Verfahren, durch welche von den statischen RAMs auf gespeicherte Daten zugegriffen werden kann. Eines ist das direkte Adressieren und das andere das indirekte Adressieren. Für ablaufinvariante Implementierungen muss jedoch ein Zugriff zum statischen RAM durch indirektes Adressieren bestehen. Um das ablaufinvariante Merkmal zu erreichen und Mehrfachvorgangscodecs durchzuführen, sollten die bestehenden Operationscodecs für den DSP folglich unter Verwendung des Indexregisters geändert werden, was als Beispiel in der Tabelle oben angezeigt ist.
  • Wenn die Adressieroperationscodes entsprechend geändert wer den und der Datenspeicher wie in 2 gezeigt angeordnet ist, kann eine Mehrfachvorgangsanlage mit 4 Kanälen wie folgt arbeiten,
    Wiederhole folgende Codes
    /*erster Vorgang*/
    Ix2=#Distanzadressex1
    Iy2=#Disttnzadressey1
    Rufe Codierer
    /*zweiter Vorgang*/
    Ix2=#Distanzadressex2
    Iy2=#Distanzadressey2
    Rufe Codierer
    /*dritter Vorgang*/
    Ix2=#Distanzadressex3
    Iy2=#Distanzadressey3
    Rufe Codierer
    /*vierter Vorgang*/
    Ix2=#Distanzadressex4
    Iy2=#Distanzadressey4
    Rufe Codierer
    wobei Distanzadressex1=Distanzadressey1=0, Distanzadressei=Adressexi-Adressex1, Distanzadresseyi=Adressey1-Adressey1 für i = 1, 2, 3. Die Adresse xi gleicht nicht notwendigerweise der Adresse yi Ein Beispiel einer Größe eines statischen RAMs ist ca. 1560 Wörter im X-Speicher und 256 Wörter im Y-Speicher für einen Codec, welcher nach ITU-T G.729 arbeitet. Die Größe des statischen RAMs wäre üblicherweise für jeden Vorgang des Vocoders G.729 die gleiche.
  • Dies ist für eine neue Implementierung oder zum Umwandeln einer bestehenden DSP-Operationscodierung zu einer ablaufinvarianten Mehrfachvorgangsimplementierung. Da dieses Verfahren keine Veränderung der Namen der Variable in der DSP-Codierung benötigt, ist es im Vergleich zu Zeigern sowohl bei MIPS als auch dem Anschlussaufwand effizient.
  • Wenn es in einer Anlage mehr als eine Art von Sprachcodec gibt, kann das hierin beschriebene Verfahren immer noch angewandt werden. Für eine Anlage, welche eine Vielzahl an verschiedenen Codecs verwendet, kann der Speicher wie in 3 veranschaulicht angeordnet werden, für welchen die Mehrfachvorgangs-Zugriffsverfahren unten beschrieben werden.
  • In 3 wird das Speicherabbild für eine Anlage mit 4 Kanälen gezeigt, bei welcher die 4 aktiven Kanäle jede mögliche Kombination von Codecs sein könnten, welche nach ITU-T G729, G723,1 und FAX operieren. In diesem Fall umfasst die Größe des ROM-Segments ROM-Daten für alle Codecarten. Die Größe des temporären, lokalen RAM-Segments ist die Maximalgröße des lokalen RAMs, welche von jedem der Codecs verwendet wird. Alle verschiedenen Codecs teilen das lokale RAM-Segment. Ähnlich weisen alle statischen RAM-Segmente eine Größe auf, um die den Rahmen verarbeitenden Speicherplatzbedürfnisse irgendeiner der möglichen Codecsimplementierungen unterzubringen. Die ermöglicht unterschiedliche Codecs, um unterschiedliche statische RAM-Segmente zu verwenden.
  • Ein Beispiel ist eine Anlage mit 4 Kanälen und zwei unterschiedlichen Sprachcodecs, nämlich G723,1 und G729. Die Programmoperationscodes sind in diesem Beispiel separat in einem Programmspeicher (nicht gezeigt) gespeichert. Der Datenspeicher ist wie in 3 gezeigt angeordnet. Solch eine Mehrfachvorgangsanlage mit 4 Kanälen kann wie folgt arbeiten,
    Wiederhole folgende Codes
    /*erster Vorgang*/
    Ix2=#Distanzadressex1
    Iy2=#Distanzadressey1
    Wenn (Codecmerker1==CODEC1)
    Rufe Codierer1
    Andernfalls
    Rufe Codierer2
    /*zweiter Vorgang*/
    Ix2=#Distanzadressex2
    Iy2=#Distanzadressey2
    Wenn (Codecmerker2==CODEC1)
    Rufe Codierer1
    Andernfalls
    Rufe Codierer2
    /*dritter Vorgang*/
    Ix2=#Distanzadressex3
    Iy2=#Distanzadressey3
    Wenn (Codecmerker3==CODEC1)
    Rufe Codierer1
    Andernfalls
    Rufe Codierer2
    /*vierter Vorgang*/
    Ix2=#Distanzadressex4
    Iy2=#Distanzadressey4
    Wenn (Codecmerker4==CODEC1)
    Rufe Codierer1
    Andernfalls
    Rufe Codierer2
    wobei Distanzadressex1=Distanzadressey1=0, Distanzadressex1=Adressexi-Adressex1, Distanzadressey1=Adresseyi-Adressey1 für i = 1, 2, 3. Die Merkervariable Codecmerkeri ist durch ein Betriebssystem oder eine Systemsteuerung schreibbar, um vorzuschreiben, welche Codecart für jeden Vorgang verwendet wird.
  • Die vorangehende detaillierte Beschreibung der vorliegenden Erfindung wurde nur mittels eines Beispiels präsentiert, und viele Variationen zu den bestimmten Details darin können denjenigen mit gewöhnlichen technischen Fähigkeiten offensichtlich sein, ohne vom Wesen der Erfindung abzuweichen. Folglich sollen solche genaueren Einzelheiten nicht das Wesen der Erfindung begrenzen, welche in den anhängenden Ansprüchen definiert ist.

Claims (14)

  1. Verfahren zum Implementieren einer Vielzahl an Encodern und/oder Decodierern (Codecs), welches eine einzige digitale Signalprozessor- (DSP) Vorrichtung anwendet, wobei die Funktion jedes Codecs durch den DSP nach einem Operationscodeprogramm ausgeführt wird, wobei das Verfahren folgende Schritte umfasst: Schaffen eines Operationscodeprogramms, welches in einem ersten Speicher zur Steuerung des DSP als Codec zu funktionieren gespeichert ist; Schaffen eines zweiten Speichers, welcher eine Vielzahl an Speichersegmenten umfasst; Implementieren einer Vielzahl an Codecs mittels des DSP durch Ausführen des Operationscodeprogramms im ersten Speicher mehrere Male und in ablaufinvarianten Vorgängen, wobei jeder Codecvorgang mit Zugang zu einem entsprechendem separaten Speichersegment im zweiten Speicher zum Speichern von Daten versehen ist, welche beim Encodieren/Decodieren eines entsprechenden separaten Datenstroms verwendet werden.
  2. Verfahren nach Anspruch 1, wobei ein dritter Speicher vorgesehen ist, welcher durch jeden Codecvorgang für geteiltes Speichern temporärer Variablen und Datenpufferung beim Encodieren/Decodieren der entsprechenden separaten Datenströme zugänglich ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei jeder Codecvorgang auf das entsprechende Speichersegment mittels indirekter Adressierung zugreift, welche auf mindestens einem Indexregister basiert, wobei mindestens ein Indexregister für jeden Codecvorgang eingestellt ist, um die Adressierung von Variablen für diesen Codecvorgang an das entsprechende Speichersegment zu ändern.
  4. Verfahren nach Anspruch 3, wobei die Vielzahl an Speichersegmenten im zweiten Speicher benachbart sind und das zumindest eine Indexregister für jeden Codecvorgang nach einer Distanzadresse eingestellt ist, welche auf dem Unterschied von Adressen aus einem ersten der Speichersegmente zu einem Speichersegment, welches diesem Codecvorgang entspricht, basiert.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei alle Speichersegmente im zweiten Speicher die gleiche Größe aufweisen.
  6. Verfahren nach Anspruch 1, 2, 3 oder 4, wobei der erste Speicher mit einer Vielzahl an Operationscodeprogrammen zum Implementieren verschiedener Codecarten versehen ist, und wobei unterschiedliche Codecvorgänge aus den verschiedenen Codecarten ausgewählt werden können.
  7. Verfahren nach Anspruch 6, wobei alle Speichersegmente im zweiten Speicher gleichgroß sind und die Speichersegmentgröße nach dem durch irgendeinen der Vielzahl an unterschiedlichen Codecarten benötigten Maximalspeicher ausgewählt wird.
  8. Datencodier- und/oder Decodieranlage, in welchem eine Vielzahl an Encodern und/oder Decodieren (Codecs) mittels einer einzigen digitalen Signalprozessor- (DSP) Vorrichtung implementiert sind, welche folgendes umfasst: einen digitalen Signalprozessor (DSP); einen ersten an den DSP gekoppelten Speicher, welcher ein Operationscodeprogramm enthält, wobei die Funktion jedes Codecs durch den DSP bei Betrieb nach dem Operationscodeprogramm ausgeführt wird; einen zweiten an den DSP gekoppelten Speicher, welcher unterteilt ist, um eine Vielzahl an separaten Speichersegmenten zu umfassen; wobei eine Vielzahl an Codecs mittels des DSP durch Ausführen des Operationscodeprogramms im ersten Speicher mehrere Male und in ablaufinvarianten Vorgängen implementiert ist, wobei jeder Codecvorgang mit Zugang zu einem entsprechendem separaten Speichersegment im zweiten Speicher zum Speichern von Daten versehen ist, welche beim Encodieren/Decodieren entsprechender separater Datenströme verwendet werden.
  9. Anlage nach Anspruch 8, welche einen dritten an den DSP gekoppelten Speicher umfasst, welcher durch jeden Codecvorgang für geteiltes Speichern temporärer Variablen und Datenpufferung beim Encodieren/Decodieren der entsprechenden separaten Datenströme zugänglich ist.
  10. Anlage nach Anspruch 8 oder 9, wobei jeder Codecvorgang auf das entsprechende Speichersegment mittels indirekter Adressierung zugreift, welche auf mindestens einem Indexregister basiert, wobei mindestens ein Indexregister für jeden Codecvorgang eingestellt ist, um die Adressie rung von Variablen für diesen Codecvorgang an das entsprechende Speichersegment zu ändern.
  11. Anlage nach Anspruch 10, wobei die Vielzahl an Speichersegmenten im zweiten Speicher benachbart sind und das zumindest eine Indexregister für jeden Codecvorgang nach einer Distanzadresse eingestellt ist, welche auf dem Unterschied von Adressen aus einem ersten der Speichersegmente zu einem Speichersegment basiert, welches diesem Codecvorgang entspricht.
  12. Anlage nach einem der Ansprüche 8 bis 11, wobei alle Speichersegmente im zweiten Speicher die gleiche Größe aufweisen.
  13. Anlage nach einem der Ansprüche 8 bis 11, wobei der erste Speicher mit einer Vielzahl an Operationscodeprogrammen zum Implementieren verschiedener Codecarten versehen ist, und wobei unterschiedliche Codecvorgänge aus den verschiedenen Codecarten ausgewählt werden können.
  14. Anlage nach Anspruch 13, wobei alle Speichersegmente im zweiten Speicher sBleichgroß sind und die Speichersegmentgröße nach dem durch irgendeinen der Vielzahl an unterschiedlichen Codecarten benötigten Maximalspeicher ausgewählt wird.
DE69912860T 1999-09-29 1999-09-29 Mehrfachinstanzimplementierung von sprachkodierer-dekodierern Expired - Fee Related DE69912860T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG1999/000095 WO2001023993A1 (en) 1999-09-29 1999-09-29 Multiple instance implementation of speech codecs

Publications (2)

Publication Number Publication Date
DE69912860D1 DE69912860D1 (de) 2003-12-18
DE69912860T2 true DE69912860T2 (de) 2004-11-04

Family

ID=20430237

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69912860T Expired - Fee Related DE69912860T2 (de) 1999-09-29 1999-09-29 Mehrfachinstanzimplementierung von sprachkodierer-dekodierern

Country Status (3)

Country Link
EP (1) EP1222531B1 (de)
DE (1) DE69912860T2 (de)
WO (1) WO2001023993A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097140A1 (en) * 2002-03-22 2005-05-05 Patrik Jarl Method for processing data streams divided into a plurality of process steps
WO2020220935A1 (zh) * 2019-04-27 2020-11-05 中科寒武纪科技股份有限公司 运算装置
US11841822B2 (en) 2019-04-27 2023-12-12 Cambricon Technologies Corporation Limited Fractal calculating device and method, integrated circuit and board card

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2134805A5 (de) * 1971-04-21 1972-12-08 Cii
US5285264A (en) * 1990-03-30 1994-02-08 Kabushiki Kaisha Toshiba Image reproduction apparatus with plural program processing
JP2773601B2 (ja) * 1993-06-11 1998-07-09 ヤマハ株式会社 信号処理装置
US6341368B1 (en) * 1997-08-22 2002-01-22 Cirrus Logic, Inc. Method and systems for creating multi-instanced software with a preprocessor

Also Published As

Publication number Publication date
WO2001023993A1 (en) 2001-04-05
EP1222531B1 (de) 2003-11-12
DE69912860D1 (de) 2003-12-18
EP1222531A1 (de) 2002-07-17

Similar Documents

Publication Publication Date Title
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
EP0268285B1 (de) Verfahren und Schaltungsanordnung zum Urladen eines Zweitrechners
DE69635865T2 (de) Adressentransformation in einem cluster-computersystem
DE69818103T2 (de) Anrufmechanismus für statisch und dynamisch verknüpfte funktionen in einer objektorientierten steuerung unter verwendung von heterogenen entwicklungsumgebungen
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2451982A1 (de) Signalverarbeitungseinrichtung, insbesondere fuer digitale datenverarbeitungssysteme
DE19535519C2 (de) Verfahren zur Reduzierung des Umfanges von Computerprogrammen
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE69912860T2 (de) Mehrfachinstanzimplementierung von sprachkodierer-dekodierern
DE2548720A1 (de) Mikroprogramm-steuerwerk
AT403969B (de) Verfahren zur kompression eines analogen signals
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE1296428B (de) Einrichtung zur Ermittlung von Speicheradressen aus Schluesselwoertern
DE10106397A1 (de) Software-Werkzeug zur Formulierung einer zu lösenden Automatisierungsaufgabe
DE3603975A1 (de) Software-programmierbare logikanordnung
EP1211588A1 (de) Verfahren zum Nutzen einer Datenverarbeitungsanlage abhängig von einer Berechtigung, zugehörige Datenverarbeitungsanlage und zugehöriges Programm
EP1145113A1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE2601379C3 (de) Schaltungsanordnung zum Umwandeln virtueller Adressen in reelle Adressen
DE102005041672A1 (de) SIMD-Prozessorarchitektur bzw. Verfahren zum Verarbeiten von Daten verschiedenen Datentyps in einer SIMD-Prozessorarchitektur
EP0828368B1 (de) Verfahren und System für einen Zugang zu multimedialen Dokumenten
EP0560342B1 (de) Verfahren zum Untersuchen des Ablaufs eines in einer Hardware-Beschreibungssprache geschriebenen Programms
DE1524264B2 (de) Einrichtung zur Erzeugung einer Bildaufzeichnung
DE2327375A1 (de) Pcm-vermittlungsstelle mit zeitvielfach- und raumvielfacheinrichtungen
DE10105729C1 (de) Verfahren und System zur funktionsmäßigen Erweiterung einer Telekommunikationsanlage

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: TIAN, WENSHUN, PALATINE, ILL., US

Inventor name: LEONG, YUEN, FOO, SINGAPORE 140102, SG

Inventor name: ALVAREZ-TINOCO, MARIO, ANTONIO, SINGAPORE 596710,

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee