wiki:SV7Specification

Version 4 (modified by zorg, 18 years ago) (diff)

--

stream version 7 format specification

Der Datenstrom ist als Strom von 32-Bit-Worten zu sehen, der dann allerdings
von MSB her dekodiert werden. Betrachtet man das ganze als Oktet-Strom, dann
ist die Reihenfolge der Bits die folgende (Zählung ab 1 beginnend, MSB links):

v-----------------------v-----------------------v-----------------------v-----------------------v-----------------------v---
|25|26|27|28|29|30|31|32|17|18|19|20|21|22|23|24| 9|10|11|12|13|14|15|16| 1| 2| 3| 4| 5| 6| 7| 8|57|58|59|60|61|62|63|64|49|
^-----------------------^-----------------------^-----------------------^-----------------------^-----------------------^---

Auf Grund unterschiedlicher Zugriffsmechanismen muß man die Streamversion
über einen anderen Machanismus bestimmen, da durch diese Struktur man zu
spät auf die Magic Number zugreifen kann. Da weiterhin kaum Streamversionen unterhalb
von Version 7 im Feld zu finden sind, und selbst wenn sie zu finden wären,
deren Klangqualität zu wünschen übrig läßt, wird im folgenden nur
Streamversion 7 beschrieben.

Diese Bitstruktur macht vor allem auch Probleme auf 16 bit und 64 bit CPUs,
da immer mit 32 bit-Worten dekodiert werden muß.

=============================== GROBSTRUKTUR ============================

Header
~~~~~~

-0-------------------------------------------------------------------------
StreamMinorVersion
 4 bit   0...1           Currently 0 (PNS not used) or 1 (PNS used)

StreamMajorVersion
 4 bit   7               Streamversion 7

Signatur
24 bit   0x2B504D        Signatur "MP+"
-1------------------------------------------------------------------------
FrameCount
32 bit   0...0xFFFFFFFF  Anzahl der Frames, jeder Frame beinhaltet 1152
                         Samples pro Kanal, der letzte Frame beinhaltet 1
                         bis 1152 Samples pro Kanal. Man beachte weiterhin
                         die Latenz der Analyse und Synthesefilterbank von
                         481 Samples. Siehe Bemerkung 2.
-2-------------------------------------------------------------------------
IntensityStereo
 1 bit   0...1           normalerweise 0, bei Intensitätsstereokodierung (IS) 1.
                         Derzeitig von keinem Encoder benutzt.
                         Siehe Bemerkung 3.

MidSideStereo
 1 bit   0...1           Wenn MidSideStereo verwendet wird, ist dieses Bit 1,
                         sonst 0.

MaxBand
 6 bit   0...32          letztes in der gesamten Datei verwendetes Subband.
                         Typische Werte sind 23 bis 29.

Profile
 4 bit   0, 7...13       Verwendetes Profile

                            0: kein Profile
                            1: Unstable/Experimental
                            2: ungenutzt
                            3: ungenutzt
                            4: ungenutzt
                            5: below Telephone (q= 0.0)
                            6: below Telephone (q= 1.0)
                            7: Telephone       (q= 2.0)
                            8: Thumb           (q= 3.0)
                            9: Radio           (q= 4.0)
                           10: Standard        (q= 5.0)
                           11: Xtreme          (q= 6.0)
                           12: Insane          (q= 7.0)
                           13: BrainDead       (q= 8.0)
                           14: above BrainDead (q= 9.0)
                           15: above BrainDead (q=10.0)

Link
 2 bit                   00: Titel startet und endet mit sehr niedrigem Pegel (keine Live- oder Klassiktitel)
                         01: Titel hört laut auf
                         10: Titel fängt laut an
                         11: Titel fängt laut an und hört laut auf

SampleFreq
 2 bit                   00: 44100 Hz  CD
                         01: 48000 Hz  DAT, DVC, ADR
                         10: 37800 Hz  CD-ROM/XA
                         11: 32000 Hz  DSR, DAT-LP, DVC-LP

MaxLevel
16 bit   0...32768       Maximaler Pegel des kodieren PCM-Inputsignals
                         Siehe Bemerkung 4
-3-------------------------------------------------------------------------
TitleGain
16 bit   -32768...+32767 Veränderung des Wiedergabepegels. Wert wird als
                         vorzeichenbehafteter 16-bit-Wert betrachtet und der
                         Pegel wird um so viele mB (Millibel) verändert. Somit
                         sind Pegeländerungen von -327.68 dB bis +327.67 dB möglich.
TitlePeak
16 bit   0...65535       Maximaler Pegel des dekodierten Titels
                         16422: -6 dB
                         32767:  0 dB
                         65379: +6 dB
-4-------------------------------------------------------------------------
AlbumGain
16 bit   -32768...32767  Veränderung des Wiedergabepegels, wenn die ganze
                         CD mit gleicher Pegelveränderung abgespielt werden soll.
                         Wert wird als
                         vorzeichenbehafteter 16-bit-Wert betrachtet und der
                         Pegel wird um so viele mB (Millibel) verändert. Somit
                         sind Pegeländerungen von -327.68 dB bis +327.67 dB möglich.
AlbumPeak
16 bit   0...65535       Maximaler Pegel der gesamten dekodierten CD
                         16422: -6 dB
                         32767:  0 dB
                         65379: +6 dB
-5-------------------------------------------------------------------------
TrueGapless
 1 bit                   Wird True Gapless verwendet?
                         0: nein
                         1: ja

LastFrameLength
11 bit   0, 1...1152     Used Samples of the Last Frame.
                         TrueGapless = 0: always 0
                         TrueGapless = 1: 1...1152

1 bit                    Can fast seeking can be used safely ?
                         0: no
                         1: yes

19 bit                   unused
-6-------------------------------------------------------------------------
EncoderVersion
 8 bit                  Encoder version * 100  (106 = 1.06)
                        EncoderVersion % 10 == 0        Release (1.0)
                        EncoderVersion %  2 == 0        Beta (1.06)
                        EncoderVersion %  2 == 1        Alpha (1.05a...z)
AudioDaten (insgesamt FrameCount mal)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LengthOfFrame
20 bit

FrameData
 ? bit

Ende
~~~~
LastFrameUsedSamples
11 bit
                         Siehe weiterhin Bemerkung 2

LengthOfFrame
20 bit

FrameData
 ? bit

FillBits
0...31 bit              Das letzte Datenwort muß aufgefüllt werden, auch
                        wenn nur 1 bit davon genutzt wird, da dieses Bit
                        in diesem Fall im letzten Byte des Wortes liegt.