[Dcmlib] Big Endian suite: images compressees

Jean-Pierre Roux jpr at creatis.insa-lyon.fr
Wed Jan 12 18:06:25 CET 2005


Mathieu Malaterre wrote:

> Ok je pense que je viens de comprendre -enfin-. L'image en question 
> est compressee !!! Ce qui n'etait pas arrivee avant dans libido ?

On n'avait pas d'image compressee, a l'epoque (c'etait interdit)
J'avais, par le passe, mis un commentaire, qq part, mais il a du degager 
... qui commencait par 'Troubles Expected'.

Il faudrait qu'on rajoute un fichier qui centraliserait les points qu'on 
a repertories comme *pouvant* poser des pb, mais auxquels on n'a jamais 
ete confrontés.

>
>  TransferSyntaxName= [JPEG Lossless, Non-Hierarchical, First-Order 
> Prediction (Process 14 [Selection Value 1])]
>  SwapCode= 4321
> Je viens de faire un 'grep -ri endian' dans libjpeg et je trouve rien. 
> Donc mon flux jpeg est lu correctement (le SwapCode gdcm est bon). 
> Mais la decompression me donne une image codee en little endian...

Un appel brutal a 'ConvertSwapZone()' devrait resoudre le bouzin, non?

>
>
> Mathieu
>
> jean-michel.rouet at philips.com wrote:
>
>>
>> peut etre pour clarifier les choses:
>> prend ce petit programme:
>> #include <stdio.h>
>> int main(int argc, char *argv[])
>> {
>>   int value = 0x04030201; /* 1 2*256 3*256*256 4*256*256*256 */
>>   char *bytes = (char *)(&value);
>>   short *shorts = (short *)(&value);
>>   printf ("%08x is converted to ", value);
>>   printf ("%02x%02x%02x%02x\n", bytes[3], bytes[2], bytes[1], bytes[0]);
>>   printf ("%08x is converted to ", value);
>>   printf ("%04x%04x\n", shorts[1], shorts[0]);
>> }
>>
>>
>> execute sur I386:
>> tu obtiens:  rouet at joebar /tmp>./test.exe
>> 04030201 is converted to 04030201
>> 04030201 is converted to 04030201
>>
>> tu vois que l'ordre est bien little endian
>>
>> maintenant execute le sur une sparc:
>> tu obtiens:
>> rouet at tan ~/src/tmp>./test
>> 04030201 is converted to 01020304
>> 04030201 is converted to 02010403
>>
>> ou tu vois que l'on est donc sur du big endian, et que lorsque l'on 
>> convertit du 32bits sur du 16 bits on obtiens alors 2143
>>
>> J'espere que c'est parlant.
>>
>>
>
>
>
> _______________________________________________
> Dcmlib mailing list
> Dcmlib at creatis.insa-lyon.fr
> http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
>



More information about the Dcmlib mailing list