[FreePascal] RLE-Demo

Diskutiere [FreePascal] RLE-Demo im Developer Network Forum im Bereich Hardware & Software Forum; Hallo Leute! Ich muss in meinem letzten Jahr in der Schule in Informatik eine Hausarbeit schreiben. Das ganze umfasst einen theoretischen...
  • [FreePascal] RLE-Demo Beitrag #1
Bond246

Bond246

Bekanntes Mitglied
Dabei seit
03.06.2006
Beiträge
2.544
Reaktionspunkte
0
Ort
127.0.0.1
Hallo Leute!

Ich muss in meinem letzten Jahr in der Schule in Informatik eine Hausarbeit schreiben.
Das ganze umfasst einen theoretischen Teil mit der schriftlichen Befassung eines Themas, dem praktischen Teil, also dem Programmieren in FreePascal (unsere Unterrichtssprache quasi) und ein Vortrag.

Als Thema habe ich mir RLE-Kompression (Run-Length-Encoding) ausgesucht.

Da der aufwendige Teil eben das Programm ist, fange ich damit an.
Die konkrete Aufgabenstellung dafür ist, einen Teil eines Grafikbildschirmes in RLE zu en- und decodieren.
Somit habe ich mir erstmal einen Grafikbildschirm gebastelt und für umfangreichere Test- und Demonstrationszwecke auch noch 2 weitere und eine Auswahlroutine.

Jetzt geht es also "nur noch" daran, den Komprimierungsalgorithmus zu schreiben. Mein Plan ist es, jeden Pixel auszulesen (GetPixel(x,y)) und dann jeweils einen Zähler laufen zu lassen, wie viele Pixel hintereinander gleich sind. (Sollte ich damit falsch liegen, bitte berichtig mich)
Ich denke die Aufgabe, nur einen vom Nutzer definierten Teil zu komprimieren sollte nicht mehr das Problem sein, wenn der Algorithmus steht.
Ein Problem gibt es aber: Wie schreibe ich die gesammelten Informationen dann in eine externe Datei?
Und wie lese ich sie später für den Decoder wieder aus?

Ich wäre euch dankbar, wenn ihr mir bei dieser Frage etwas unter die Arme greift.
Liebe Grüße
Bond
 
  • [FreePascal] RLE-Demo Beitrag #2
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
du hast einmal teile, die per rle komprimierbar sind und teile, die es nicht sind. beim komprimieren würde ich jedem teil eine entsprechende markierung vorstellen. z.b. könntest du eine negative zahl verwenden, wenn du unkomprimierte daten hast, und eine positive zahl, wenn es sich kompriemieren ließ. bei einer negative zahl werden halt abs(zahl) farbpunkte folgen, bei einer positiven wird der folgende farbpunkt zahl mal wiederholt.

jede ziffer steht z.b. für eine zahl/farbpunkt
51(-4)712345 würde dann entpackt zu 11111712355555
 
  • [FreePascal] RLE-Demo Beitrag #3
Bond246

Bond246

Bekanntes Mitglied
Dabei seit
03.06.2006
Beiträge
2.544
Reaktionspunkte
0
Ort
127.0.0.1
du hast einmal teile, die per rle komprimierbar sind und teile, die es nicht sind. beim komprimieren würde ich jedem teil eine entsprechende markierung vorstellen. z.b. könntest du eine negative zahl verwenden, wenn du unkomprimierte daten hast, und eine positive zahl, wenn es sich kompriemieren ließ. bei einer negative zahl werden halt abs(zahl) farbpunkte folgen, bei einer positiven wird der folgende farbpunkt zahl mal wiederholt.

jede ziffer steht z.b. für eine zahl/farbpunkt
51(-4)712345 würde dann entpackt zu 11111712355555

Jo, danke nochmal für den Tipp. Natürlich weiß ich das schon. Diese Markierung nennt man auch CodeFlag ;) und hatte ich vor mit Buchstaben oder sowas zu machen.
Hab mich dahingehend schon belesen, wollte oben nicht weiter drauf eingehen sondern nur mein grobes vorgehen erklären, weils mir nicht so wichtig war. Ich will möglichst alleine klar kommen. Schon alleine deswegen, weil ich ja dann das Forum als Quelle angeben muss und es unpraktisch wäre, wenn ihr mir hier quasi alles vorkaut und ich das dann im schlimmsten Fall "kopieren" muss/sollte.

Dennoch, meine eigentliche Frage steht noch:
Wie lagere ich die codierten Informationen dann letztendlich in die .rle-Datei aus?
 
  • [FreePascal] RLE-Demo Beitrag #4
Bond246

Bond246

Bekanntes Mitglied
Dabei seit
03.06.2006
Beiträge
2.544
Reaktionspunkte
0
Ort
127.0.0.1
Keiner Ahnung?
 
  • [FreePascal] RLE-Demo Beitrag #5
Bond246

Bond246

Bekanntes Mitglied
Dabei seit
03.06.2006
Beiträge
2.544
Reaktionspunkte
0
Ort
127.0.0.1
Hallöchen.
Das Problemchen mit den Dateien erstellen habe ich mittlerweile rausbekommen.

Doch jetzt plagt mich ein neues Problem.
Ich bekomm die Dateien wahrscheinlich nicht korrekt decodiert. Zuerst habe ich natürlich die Codierung auf Fehler hin überprüft und Einzelausgaben für die Fehlerüberprüfung durchgeführt.
Wie gesagt, scheint alles zu laufen wie es soll.

Doch der Encoder scheibt Probleme zu machen.

Ich würde mich freuen, wenn sich jemand angesprochen fühlt, mal über den Code drüber zu lunschen, dann würde ich ihn online stellen.

Ich hoffe auf Antwort und grüße die Programmierer da draußen.
Gruß Bond
 
Thema:

[FreePascal] RLE-Demo

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben