[Fwd: Erste Datei]
Christian HJ Wiesner <[email protected]> Mon, 17 Nov 2003 23:31:43 +0100
| Newsgroups | gmane.comp.audio.mpc.devel |
|---|---|
| Message-ID | <[email protected]> |
FYI, i wont have the time to translate Frank's diagram into english=20 before the weekend, but for those of you understadning either German or=20 being very good compression and coding specialists, here are Frank's=20 ideas on the principle of how to organize the code for SV8. Christian -------- Original Message -------- Subject: Erste Datei Date: Mon, 17 Nov 2003 00:57:59 +0100 From: Frank Klemm <[email protected]> Reply-To: Frank/[email protected] To: [email protected] References: <[email protected]> So, die erste Datei angefangen. Die wird wahrscheinlich 30 bis 40 Kbyte lang. Hier soll gekl=E4rt werden - prinzipieller Aufbau - Kurzbeschreibung Arbeitspakete -- Attached file included as plaintext by Ecartis -- -- File: Wiesner.txt Du bekommst von mir Dateien. Deine Aufgabe w=E4re, diese in =FCbersichtli= cher Form im Web zu pr=E4sentieren, Leute zu informieren etc. ich habe keine Ader f=FCr das Designen von =FCbersichtlichen Webseiten, PHP-Interfaces etc. Dateien k=F6nnen sich beziehen auf: - Musepack - Matroska - andere Audio/Video related Dinge Erstes beiepiel einer (unfertigen) Datei ist Schematics.txt. Dateien sind solange nicht anders vermerkt als tempor=E4r zu betrachten, = es lohnt sich dann auf keinen Fall diese gro=DFartig manuell umzuformatieren. -- Attached file included as plaintext by Ecartis -- -- File: Schematics.txt Schematics of Command Line Encoder ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------= --------------------------+ ...| othe= r Libs and Input sources | : +------= --------------------------+ : : +------= ----+ +------------+ +---------------------+ :..| MACL= ib | | Lib | | Lib to parse AIFF |... : +------= ----+ | Wildcard |... +---------------------+ : : +------------+ : : : +------= -----+ : +---------------------+ : :..| LibF= LAC | +----------+ : | Lib to parse WAV | : : +------= -----+ | LibTag | : +---------------------+ : : +----------+ : : ..........: : +------= -------------------------------------------+ : : : : :..| Lib = to use Coprocesses to read compressed PCM | : : : : : +------= -------------------------------------------+ : : : : : +--------------------+ +-------------------+ : +------= ----------------------+ +---------------+ USER <-> | Encoder-Frontend |.......| Lib to Read PCM |..:..| Lib = for Audio Device I/O |...| LibRealTime | +--------------------+ : +-------------------+ : +------= ----------------------+ +---------------+ ^ | : : | | : :..+------= --------------+ | | :............................| Lib = for File I/O | | | +------= --------------+ | | | | . . . . . . .|.|. . . . . . . . . . . . . . . . . . . . . . . . . . .= . . . . . . . . . . . . . . . . . . . . . . . . | | = libMPCencode | v +----------------+ | Encoder | | Block Engine | +----------------+ ^ | | +----------------------------------+ +----------------------------------+ | | v +-----------+ | Encoder | = +--------------------+ +-----------+ = ...| Lib handling |..... ^ | = : | MDCT/FFT/Subband | : | +-----------------= + : +--------------------+ : +----------------+ | ..............= |..............: : | v : = v +----------------------+ : +-----------+ +----------------+ +-----= -----+ | Additional | : | | | Transform & | | Psy= cho | | fast Math routines |..: | Entropy |<--| Quantization |<--| Mod= el | +----------------------+ : | Encoder | | Engine | | Mux= er | : +-----------+ +----------------+ +-----= -----+ : ^ ^= ^ : | |= | : +-------------------------------------+ |= +-------------------+ : | |= | : v v= v : +-----------------------------+ +---------------------------= ---+ +-----------------------------+ : | Long term psychoacoustic | | Medium term psychoacousti= c | | Short term psychoacoustic | : | 20 Hz...6 kHz, 20...80 ms | | 100 Hz...20 kHz, 5...20 m= s | | 1 kHz...20 kHz, 1...5 ms | : +-----------------------------+ +---------------------------= ---+ +-----------------------------+ : : : = : : :............................:.................= ...............:............................: Modules used for the Command Line Encoder ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Project Management for different OS/Compilers - Encoder-Frontend [High Complexity] * Parsing command line, Sanity tests of command line * Select quality * Fading, duration, start time * Opening source files * Writing encoded files * Some user information * Some very rare user interactions * Lib-Wildcard [Medium Complexity, non-portable] Task is to support: * Wildcards: mppenc *.wav . * Directories: mppenc Prince/ Prince/mpc/ * File lists: mppenc playlist.m3u mpc/ - LibTag [High Complexity] * Lib for File I/O [Medium Complexity, non-portable] Task is to support: * 64 bit I/O (when available) * Reading from Standard input/output * Seeking / Test for seeking available * Overwrite handling when file exists * Disk full handling * Lib to Read PCM Task is NOT to support * hundreds of file formats from the Atari 800XL time, which are used ve= ry seldom Task is to support: * Common file formats used in music and video * Packed file formats like Monkey's Audio / FLAC / MPEG-4 Lossless * - Lib to parse AIFF - Lib to parse WAV - Lib for Audio Device I/O - LibRealtime - LibFLAC - MACLib - other Libs and Input sources - Lib to use Coprocesses to read compressed PCM - Encoder Block Engine - Encoder - Psycho Model Muxer - Long term psychoacoustic - Medium term psychoacoustic - Short term psychoacoustic - Transform & Quantization Engine - Entropy Encoder - Lib handling MDCT/FFT/Subband - Additional fast Math routines Schematics of Command Line Decoder ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------+ | Lib | | Wildcard |... +------------+ : : +----------+ : | LibTag | : +------------+ +----------+ : ..........| LibQUANT | : : : +------------+ : : : : : : +--------------------+ +--------------------+ : +-----= -----------------------+ +---------------+ USER <-> | Decoder-Frontend |.......| Lib to Write PCM |..:..| Lib= for Audio Device I/O |...| LibRealTime | +--------------------+ : +--------------------+ : +-----= -----------------------+ +---------------+ ^ | : : | | : :..+-----= ---------------+ | | :.............................| Lib= for File I/O | | | : +-----= ---------------+ | | : | | : +-----= ---------------------+ +-----------------------+ | | :.............................| Lib= for FTP/HTTP Input |...| TCP/IP + UDP/IP lib | | | +-----= ---------------------+ +-----------------------+ | | | | . . . . . . .|.|. . . . . . . . . . . . . . . . . . . . . . . . . . .= . . . . . . . . . . . . . . . . . . . . . . . . | | = libMPCdecode | v +----------------+ | Decoder | | Block Engine | +----------------+ ^ | | +--------------------------------------------------+ +--------------------------------------------------+ | | | | | | v | v +-----------+ +----------= --+ | Decoder | | Decoder = | | SV7/SV8 | | Native SV= 8 | +-----------+ +----------= --+ ^ | ^ | | | | | +-------+ +------------------+ +-------+ +-= -----------------+ | | | = | | v | = v +------------+ +-----------+ +-----------+ +------------+ +----= -------+ +-----------+ | Synthese |<--| Requant |<--| Entropy | | Synthese |<--| Re= quant |<--| Entropy | | filter | | Matrix | | Decoder | | filter | | Ma= trix | | Decoder | +------------+ +-----------+ +-----------+ +------------+ +----= -------+ +-----------+ : : : : +--------------------+ : | Lib handling |....................................: | MDCT/FFT/Subband | +--------------------+ Es folgt f=FCr jedes Modul (aber nicht mehr heute): - Kurzbeschreibung - Abgrenzung von schon existierenden =E4hnlichen L=F6sungen - verbale Aufwandsabsch=E4tzung - portabel/nicht ganz portabel/mu=DF f=FCr jedes OS neu implementiert wer= den - Bearbeiter: nur Klemm/wenn m=F6glich, jemand anders/Klemm auf keinen Fa= ll - Wichtigkeit: F=FCr die Funktion notwendig/wichtig, da in SV7 implemntie= rt und sch=E4tzen gelernt/weniger wichtig - Abh=E4ngig von anderen Modulen/wird f=FCr andere Module ben=F6tigt - Beispiele, wenn n=F6tig - Test von Grundmodulen - Gesamttest - H=F6rtests - Handbuch http://mpc.corecodec.org