Allgemeines zu den Dateien und Proceduren

 

1.0 Statistik zum Quelltext und DLL-Code

An diesem Programm habe ich etwa 500 h geschrieben, wobei viel Zeit zum Testen und Forschen drauf ging. Mit Testen meine ich Performance-Tests und Packraten- Tests. Außerdem mußte ich viele Testprogramme schreiben, damit ich statistische Auswertungen machen konnte.
 
38
Dateien QuellText
46
Proceduren QuellText
24
Funtionen QuellText
4666
Zeilen insgesamt QuellText
rund 4600
Pascal-Anweisungen QuellText
rund 6400
Assembler-Anweisungen  QuellText (alles max. 16bit)
58368
Bytes Code DLL-Code
15892
Bytes Data DLL-Code
8192
Bytes Heap DLL-Code
0
Bytes Stack DLL-Code

2.0 Die Dateien im Einzelnen

Hier sind die ganzen Programmdateien im einzelnen nochmals aufgelistet. Die Programmdateien habe ich, zur besseren Übersicht beim Programmieren, in Verzeichnissen gespeichert . Zur Darstellung habe ich jedes Haupt-Verzeichnis in einer Tabelle zusammengefasst und zu jeder Datei die Bedeutung und die Dateigröße notiert.


2.1 Das Verzeichnis "CRUN"

In diesem Verzeichnis sind Programm- Module, die für die Codierung und Decodierung von BMP <--> DSO,TRN dienen.
Dateiname
Größe
Bemmerkung
GLOBAL\G_HUFFTA.PAS
7425
 Globale Variablen für Huffman und DeHuffman
GLOBAL\G_MATRIX.PAS
4999
 Die Y,U,V,F,E,Q-Matrizen
GLOBAL\G_MULTIP.PAS
8591
 Multiplikatoren für YUV >RGB
GLOBAL\GLOBALS.PAS
3935
 diverse Globale Variable
GLOBAL\NULLBYTE.PAS
8451
 Ein Block von 4096Null Bytes
CRUNCH\BLOCKUTI.PAS
 4714
 Null und HuffmanCodierung Der Quant-Daten
CRUNCH\RGB_YUV.PAS
8279
 RGB > YUV
CRUNCH\DCT_Y.PAS
26115
 von Cos-Transformation + Quantisierung
CRUNCH\SAVE_MCU.PAS
4439
 Zerlegen und Verzweigen von RGB > YUV > MCU-Block
CRUNCH\BMP_HEAD.PAS
2045
 Auslesen des BMP-Headers und Füllen von Parameter
CRUNCH\CRUNCH.PAS
5954
 RGB-Blocklesen, Verzweigung bis Huffmancodieren
DECRUN\YUV_RGB.PAS
13550
 YUV > RGB
DECRUN\IDCT_Y.PAS
29445
 Dequantisierung + inverse Cos-Transformation
DECRUN\LOAD_MCU.PAS
11786
 Zerlegen von MCU > YUV > RGB
DECRUN\DECRUN.PAS
9930
 Huffman-Block lesen Dehuffman  > MCU's Verzweigen
CODDECOD.PAS
1589
 Verzweigen zu dem Crunch oder Decrunch

2.2  Das Verzeichnis "DECO"

 Diese Programm-Module dienen zur Umwandlung einiger GrafikFormate ins BMP- Format.
Dateiname
Größe
Bemmerkung
PCDDECOD.PAS
 8212 
Decodieren von 384iger und 768 PCD  > HeapBMP
DSODECOD.PAS
3659 
Decodieren von DSO (CODDECOD)       > HeapBMP
PCXDECOD.PAS
13686 
Decodieren beliebiger PCX-Dateien   > HeapBMP
TIFDECOD.PAS
11182 
Decodieren ungepackter 1-24bit Tif  > HeapBMP
GIFDECOD.PAS
12484 
Decodieren beliebiger Gif-Dateien   > HeapBMP
BMPDECOD.PAS
3236 
Decodieren ungepackter BMP-Dateien  > HeapBMP

2.3 Das Verzeichnis "PUBL"

In diesem Verzeichnis sind die Hauptproceduren, die dann zu den Nebenproceduren verzweigen.
Dateiname
Größe
Bemmerkung
MIN_VIEW.PAS
 9403 
Erstelle Fenster + Verzweige FormatModulen (Deco)
MAX_VIEW.PAS
7432 
Erstelle Fenster + Verzweige FormatModulen (Deco)
SCALE_FB.PAS
12707 
FarbScalierung, z.b. 1bit in 24-bitGrafik
SCALE_PX.PAS
5644 
Größen- Scalierung von HeapBMP's
SCALE.PAS
5481 
Scalieren von BMP > beliebige Größe BMP
SAVE.PAS
3730 
Convertierung von PCD,DSO,TIF,FLC, ->BMP
PACKER.PAS
1511 
Packe 24bit Bitmap in DSO oder TRN (DSO=TRN)
INFOABOU.PAS
1724 
Information über PCD, DSO, holen (X,Y,Größe,...)

2.4 Das Verzeichnis "ANIM"

In diesem Verzeicnis sind die Programm- Module.
Dateiname
Größe
Bemmerkung
GLOBALS_.PAS
2219 
Globale Variablen für den Anim-Player
INIT_FLC.PAS
4047 
Decodieren des Headers und Parameter füllen
CHUNKASM.PAS
15822 
Decodieren der Chunks
NEXTFRAM.PAS
2750 
Lesen eines Frames und Festlegen der FrameArt
PLAY_FLC.PAS
11046 
Fenstererstellen und Verzweigung zu den Modulen

2.5 Das Hauptverzeichnis

Im Hauptverzeichnis stehen die Dateien, die zur Erstellung der DLL dienen. Außerdem ist ein Testprogramm "Hallo.pas" in diesem Pfad.
Dateiname
Größe
Bemmerkung
DESOPLAY.PAS
1212 
zum Erstellen der "DLL"
HALLO.PAS
 8261 
zum Testen der Module und der DLL, je nach Compile
HALLO.RES(binär)
4748 
zugehörig zur Hallo.Pas
TOOLS.PAS
 5678 
Globale Tools für die Module, z.B. ZahlenAusgabe
TYPEN.PAS
 887 
Allseits verwendete Typen, z.B.  THugePointer
V_UNIT.PAS
 1830 
zum Erstellen der TPU = DLL, nur  für Hallo.pas

3.0 Kurze Beschreibung der Haupt-Proceduren (Funktionen)

Die Proceduren (Funktionen) sind fast alle nach dem gleichen Schema aufgebaut.

Fehler:= Name(Parameter)


3.1 closehandle(w_min:HWnd)

Schließen eines Fensters und der gegebenenfalls offenen Speicher w_min = darf auch Null sein

3.2 int := pack( Source, Destination:Pcar, Qualität, Parent_win:HWnd)

Packen eines Bildes

3.3 int := minview( Source:Pcar; x,y:integer; var w_min:HWnd; Parent:Hwnd; Option:integer)

Anzeigen eines kleinen Bildes Schließen und Freigabe des Gerätekontextes mit closeHandle(..)

3.4 int:= maxview(Source:PCar ; Option:integer)

Anzeige eines Vollbildes
 

3.5 int:=openflc( Source:Pcar; x,y:integer; var w_min:HWnd; Parent:Hwnd; Option:integer)

FLC - Player mit dieser Procedure wird ein FLC-File geöffnet, und das erste Frame dargestellt Schließen und Freigabe des Gerätekontextes mit closeHandle(..);

3.5.1 int:=startflc

Einschalten der Animation; ohne Parameter

3.5.2 int:=stopflc

Ausschalten der Animation; ohne Parameter

3.6 int:= save(Source, Destination:Pcar, Option:integer;Parent_win:HWnd)

Speichern eines Bildes ins 'BMP' Format

3.7 int:=infoabout(Source:PChar;var fbt,typ,x,y:integer;var gr_u,gr_k:longint)

Informationen zum BildFile

3.8 int:= scale(s,d:PChar;zx,zy,fb,keep:integer;Parent_win:HWnd)

Skalieren einer Bitmap

4.0 Mögliche Fehler, die Auftreten können

Die Fehler werden als Nummern zurück gegeben und nicht als Strings, da die Ausgabe der Fehler nun in deutsch oder einer anderen Sprache erfolgen kann.
Blättern:
Mein Format Decodieren  

Praktikum