Claas J. Cornelius - Ogg-on-a-chip - MDCT MDCT Funktionsweise und Limitierende Faktoren
MDCT - Ogg-on-a-chip - Claas J. Cornelius MDCT Verwendete Algorithmus für MDCT: B.Edler, K.Brandenburg, T.Sporer von 1992 Leicht zu implementieren, robust gegenüber Rundungsfehlern, benötigt minimalen Speicher Eigenschaften 50 % überlappend Nicht direkt reversibel (add-and-overlap) n Samples werden zu n Koeffizienten transformiert Spezielle Anforderungen an Fenster gestellt
MDCT - Ogg-on-a-chip - Claas J. Cornelius Ablauf der (I)MDCT 1.Pre-twiddling: Multiplizieren der Frequenz-Koeffizienten mit den Twiddle-Faktoren 2.Butterfly calculations: Überkreuz-Operation von Faktoren der zweiten Hälfte 3.Bit reversal: Erste Hälfte wird berechnet durch umkehren der Bitorder der zweiten Hälfte und Multiplikation 4.Post-twiddling: Endergebnis wird erzielt durch Multiplikation mit Twiddle-Faktoren Twiddle-Faktoren werden einmalig berechnet und stehen in einem Look-up-Table.
MDCT - Ogg-on-a-chip - Claas J. Cornelius Struktur
MDCT - Ogg-on-a-chip - Claas J. Cornelius MDCT-Core
MDCT - Ogg-on-a-chip - Claas J. Cornelius Ablauf der Berechnung Software schreibt Steuerdaten über APB-Bus in memory mapped Register Start-Message über APB Control-Unit berechnet via AU die Adresse der Daten AMBA-Interface holt Daten und speichert diese in einem Buffer Zieladresse der Daten wird berechnet (parallel) Daten mit der AU berechnet und in weiterem Buffer gespeichert Daten werden wieder im RAM gespeichert Control Unit befindet sich im Warte-Zustand AHB-Bus wird blockiert
MDCT - Ogg-on-a-chip - Claas J. Cornelius Aussichten Freigabe des Busses während der Berechnung (Audio- und MDCT-Codec) Speichern der Twiddle-Faktoren in internem Speicher Nutzen von Burst-Anfragen Nutzung von Symmetrien Gleichzeitige Übertragung mehrerer Samples Einbeziehen der Funktion mdct_bitreverse()