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

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Antworten
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

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

Beitrag 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) 3252 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) 3252 mal betrachtet
Hat jemand einen Tipp für mich, welche Art von Daten (Vertex-/Index-/Bildformat) solche Eigenschaften zeigt?

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

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

Beitrag 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.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

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

Beitrag 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).
Ohne Input kein Output.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

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

Beitrag 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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

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

Beitrag 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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

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

Beitrag 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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
sirnoname
Beiträge: 67
Registriert: 20.06.2010, 11:04

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

Beitrag 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 :)
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

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

Beitrag von Schrompf »

Hat es sich inzwischen herausgestellt, wie die Sachen zu lesen sind? :-)
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

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

Beitrag 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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten