Les BAM
Posté : sam. 21 mai 2011, 15:08
Certaines BAM ne ressemblent à rien à l'affichage car la partie data est visiblement compressé 'RLE':
Structure du fichier BAM décompressé
"
0x0008 4 (dword) Offset frame data|Compressed
* bits 30-0: Offset to frame data
* bit 31: 0=Compressed (RLE), 1=Uncompressed
"
Exemple: ILEAT16.BAM / Armure cuir Orc +3
Si je lis 2 Dword parmis les 4, j'obtiens une position à 1084 soit '0000010000111100'
Si les 2 dword suivant, j'obtiens pas 0 comme c'est le cas souvent mais 32768 soit '1000000000000000'.
J'ai donc en bit 31, un '1' qui signifie compression RLE:
Structure du fichier BAM décompressé
"
//Frame Data
* If this is not a compressed frame, then this is simply width*height bytes, which are pixel values using the palette
* specified earlier.
* If this is a compressed frame, the data is compressed with a run-length-encoding scheme. The scheme
* is as follows:
* Any byte which is not the transparent index from the header represents itself
* The transparent index followed by a byte x represents (x+1) copies of the transparent index
0x0000 1 (byte) position_palette
"
La gestion de la palette de couleur est visiblement différente (je confirme le rendu sans rien changer à la lecture est très moche
).
Questions:
"RLE"?
La partie data commence bien en position 1084? Si je lis à partir de là, les valeurs sont toutes à '0'.
Coco
Coco
Structure du fichier BAM décompressé
"
0x0008 4 (dword) Offset frame data|Compressed
* bits 30-0: Offset to frame data
* bit 31: 0=Compressed (RLE), 1=Uncompressed
"
Exemple: ILEAT16.BAM / Armure cuir Orc +3
Si je lis 2 Dword parmis les 4, j'obtiens une position à 1084 soit '0000010000111100'
Si les 2 dword suivant, j'obtiens pas 0 comme c'est le cas souvent mais 32768 soit '1000000000000000'.
J'ai donc en bit 31, un '1' qui signifie compression RLE:
Structure du fichier BAM décompressé
"
//Frame Data
* If this is not a compressed frame, then this is simply width*height bytes, which are pixel values using the palette
* specified earlier.
* If this is a compressed frame, the data is compressed with a run-length-encoding scheme. The scheme
* is as follows:
* Any byte which is not the transparent index from the header represents itself
* The transparent index followed by a byte x represents (x+1) copies of the transparent index
0x0000 1 (byte) position_palette
"
La gestion de la palette de couleur est visiblement différente (je confirme le rendu sans rien changer à la lecture est très moche

Questions:
"RLE"?
La partie data commence bien en position 1084? Si je lis à partir de là, les valeurs sont toutes à '0'.
Coco
Coco