[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