Mathe 2

18/12/2011 - 17:29 von Hermie | Report spam
Ich versuche, das Problem jetzt nochmal zu isolieren:

Meine unkomprimierte Audiodatei wurde in "Frames" mit je 320 Bytes
komprimiert.
Also jedes Frame (bestehend aus 62 Bytes) enthàlt 320 Bytes in
komprimierter Form.

Diese komprimierten Bytes sind 1-basiert (ich lese die mittels Get
#iFile aus der komprimierten Datei aus, deshalb fange ich bei 1 an).

Frame 1 umfasst deshalb Byte 1 bis Byte 320 inkusive
Frame 2 umfasst Byte 321 bis Byte 641 inklusive
etc.

Nun möchte ich anhand einer ByteStart-Position und einer ByteDuration
(beide beziehen sich auf die unkomprimierte Audiodatei) errechnen,
welche Frames ich lesen muss.

Beispiel:

uByteStart: 321
uByteDuration: 10
An den Fingern kann ich mir hier abzàhlen, dass ich ab Frame 1 lesen
muss, dass ich 1 Frame lesen muss und dass mein "Offset" +10 Bytes betràgt.

Christian hat einen Vorschlag gemacht, aber der hat leider nicht
funktioniert.

Könnte vielleicht nochmal jemand schauen?

Viele Dank.

Hier mein Prototyp:

Private Sub pCalc(ByVal uByteStart As Long, ByVal uByteDuration As Long,
ByRef uStartFrame As Long, ByRef uFramesToRead As Long, ByRef uOff As Long)

uStartFrame uFramesToEnd uOff
End Sub
 

Lesen sie die antworten

#1 R.Kantas
20/12/2011 - 17:19 | Warnen spam
Wieso man aus der Position eines Bytes in der komprimierten Fassung die
Position des Gegenstücks in der unkomprimierten Fassung so einfach berechnen
können soll, ist mir noch immer ein Ràtsel - die Komprimierung erfolgt ja
wohl nicht linear, sondern dynamisch, und das bedeutet letzten Endes, daß
man entweder sequentiell von vorne her abarbeiten muß oder daß der
Komprimierungsalgorithmus Synchronisierungsflags anbieten müsste.

Ähnliche fragen