Seite 1 von 1

Weiß jemand, was für Daten das sein könnten?

Verfasst: 25.12.2012, 13:43
von Krishty
Hi,

Ich brauche mal ein Bisschen Hilfe. Ich habe hier die binäre Ausgabe einer Anwendung, und versuche, die zu visualisieren. Dabei bin ich auf folgenden Block Daten gestoßen; hier Byte für Byte in ein Bild geschrieben:
bild.png
bild.png (34.64 KiB) 3316 mal betrachtet
Es könnte sich dabei um Vertexdaten, Dreiecksinformationen oder auch um eine Textur handeln – ich habe keine Ahnung. Ich dachte zuerst an eine RLE-komprimierte Bitmap, weil es weiche Übergänge gibt, aber die Zeilen unterschiedlich lang scheinen …

Eine interessante Eigenschaft habe ich aber gefunden: Die Werte 0x00, 0x11, 0x22, 0x33, …, 0xFF kommen deutlich häufiger vor als ich es gewohnt bin:
spektogramm.png
spektogramm.png (5 KiB) 3316 mal betrachtet
Hat jemand einen Tipp für mich, welche Art von Daten (Vertex-/Index-/Bildformat) solche Eigenschaften zeigt?

Gruß, Ky

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 25.12.2012, 16:40
von Jonathan
Hm, Datenanalyse ist natürlich ein spannendes Thema, aber ich habe mich damit bisher kaum beschäftigt. Mit gängiger Mathe-Software, sollte man da aber schon eine Menge machen können.

Ich würde vermutlich versuchen, nach irgendwelchen erwarteten Eigenschaften zu suchen:
- Dreiecke kann man ja bestimmt irgendwie als Punktewolke plotten. Es gibt ja nicht so schrecklich viele Datentypen und Vertexformate, darüberhinaus ist die Position vermutlich ganz vorne. Man könnte also behaupten, es kommen immer 3 float, dann x Byte zusätzliche Vertexdaten und dann die nächste Position. Wenn der Datensatz vollständig ist, müsste ja die Anzahl der Dreiecke ein Teiler der Gesamtgröße sein, mit etwas Glück schränkt dass die suche schon ein.
- Bei Indexdaten würden normalerweise Dreiecke aneinander grenzen, es würde also häufig recht ähnliche Zahlen hintereinander kommen. Darüber hinaus würden auch viele Kanten mehrfach vorkommen. Außerdem könnte ein TriangleStrip abgeschlossen werden, indem zweimal der selbe Index vorkommt. Und man kann natürlich auch hier gucken, ob man am Ende wirklich nur vollständige Dreiecke hätte (wobei das durch potentiell mehrfache TriangleStrips natürlich kein Teiler mehr sein müsste).
- Bei Texturen kann man vermutlich davon ausgehen, dass wenn das Bild direkt aus dem Grafikkartenspeicher kommt, es entweder unkomprimiert oder diese Echtzeit-Spezialkomprimierung nutzt. Da bleiben jetzt auch nicht so schrecklich viele Möglichkeiten übrig, man müsste alle einfach mal durchtesten.

Ansonsten könnte man mal nicht nur einzelne Werte plotten, sondern immer n-Byte zusammen fassen und so prüfen ob bestimme Kombinationen besonders häufig auftauchen.

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 25.12.2012, 23:25
von BeRsErKeR
Krishty hat geschrieben:Ich habe hier die binäre Ausgabe einer Anwendung, und versuche, die zu visualisieren.
Um welche Anwendung oder wenigstens Art von Anwendung handelt es sich denn? Dann könnte man leichter Vermutungen aufstellen. Die Werte klingen jedenfalls recht merkwürdig. Ich würde entweder auf eine Art Verschlüsselung tippen oder auf Bilddaten. Wenn oft 0x00, 0x11, usw vorkommen kann man eventuell auch davon ausgehen, dass jeweils 4 Bit eine spezielle Bedeutung haben und an diesen Stellen gleiche Werte einfach in Paaren oder Sequenzen auftauchen (z.B. Bildausschnitte mit ähnlichen Farben).

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 26.12.2012, 02:42
von eXile
Und nun mal mein Schuss ins Blaue: Schau einfach mal, ob da irgendwo an 32-Bit-Grenzen ausgerichtete Floating-Point-Zahlen (von mir aus nur im Bereich zwischen -10.0 und 10.0) drin stecken.

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 26.12.2012, 10:38
von Krishty
Jonathan hat geschrieben:Ich würde vermutlich versuchen, nach irgendwelchen erwarteten Eigenschaften zu suchen:
Ja; aber von denen tauchen leider keine auf :( Ich werde gleich nochmal die räumliche Ausgabe versuchen … Sieht genau so aus wie die eindimensionale – 16 Cluster in jeder Dimension mit Konzentration um 0.
Jonathan hat geschrieben:Ansonsten könnte man mal nicht nur einzelne Werte plotten, sondern immer n-Byte zusammen fassen und so prüfen ob bestimme Kombinationen besonders häufig auftauchen.
Habe ich auch schon gemacht; insbesondere habe ich versucht, die häufigsten Werte zu finden. Ein Muster konnte ich aber nirgends erkennen.
BeRsErKeR hat geschrieben:Um welche Anwendung oder wenigstens Art von Anwendung handelt es sich denn? Dann könnte man leichter Vermutungen aufstellen.
Ein PSX-Spiel.
BeRsErKeR hat geschrieben:Die Werte klingen jedenfalls recht merkwürdig. Ich würde entweder auf eine Art Verschlüsselung tippen oder auf Bilddaten. Wenn oft 0x00, 0x11, usw vorkommen kann man eventuell auch davon ausgehen, dass jeweils 4 Bit eine spezielle Bedeutung haben und an diesen Stellen gleiche Werte einfach in Paaren oder Sequenzen auftauchen (z.B. Bildausschnitte mit ähnlichen Farben).
Guter Punkt! In Nibbles habe ich noch garnicht gedacht; auch das werde ich nachholen. (Fast der gesamte Rest arbeitet mit 16- und 32-Bits-Daten.)
eXile hat geschrieben:Und nun mal mein Schuss ins Blaue: Schau einfach mal, ob da irgendwo an 32-Bit-Grenzen ausgerichtete Floating-Point-Zahlen (von mir aus nur im Bereich zwischen -10.0 und 10.0) drin stecken.
Nein; garnicht. Die Exponenten sind wild durcheinander und meist jenseits +/-30. Hätte man von vornherein ausschließen können, wenn ich die Plattform gesagt hätte (siehe BeRsErKeR).

Eine andere Idee von mir war übrigens, dass das Werte sind, die auf Tabellen mit 17 Byte breiten Einträgen verweisen. Dann ist mir aber klar geworden, dass sich 0x11, 0x22, … selbst dann nicht häufen sollten …

Ebenfalls offen sind 16-Bit-Farben. Die sehen in einem Byte-Editor immer furchtbar durcheinander aus, dürften aber auf der PSX recht häufig angewandt worden sein.

Ich melde mich zurück, falls ich was finde.

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 27.12.2012, 11:04
von Krishty
Eine Interessante Regelmäßigkeit, die ich bei der räumlichen Analyse eines anderen Datensatzes gefunden habe:
circle.png
Wahrscheinlich sind dort Normalenvektoren kodiert.

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 01.02.2013, 13:45
von sirnoname
Tja, keine Ahnung von höherer Mathmatik.
Sieht aus wie ein Wetterfax bild mit großem Hintergrundrauschen beim Empfang, oben und unten kommt und geht er, die Zeilen Längen Synchronisation wäre auch anzupassen :)

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 01.02.2013, 14:30
von Schrompf
Hat es sich inzwischen herausgestellt, wie die Sachen zu lesen sind? :-)

Re: Weiß jemand, was für Daten das sein könnten?

Verfasst: 01.02.2013, 21:43
von Krishty
Ja. Es handelt sich um einen See von Vertexpositionen, Texturindizes, Normalenvektoren (auf 4096 normiert, darum die Kugel), und 15-Bit-RGB-Werten; jeder Datensatz misst ein minimales Mehrfaches von 2 B und ist mit einer ID gekennzeichnet, die ich aber leider noch nicht entschlüsselt gekriegt habe.