[Dcmlib] Big Endian suite: comprends toujours pas

Mathieu Malaterre mathieu.malaterre at kitware.com
Wed Jan 12 17:36:22 CET 2005


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

  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...

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.
> 
> 






More information about the Dcmlib mailing list