how to read 12bit raw data faster

This is my way to read 12bit raw image file.
data = fread(p,[768,1024],'ubit12=>uint32',4,'l');
But it takes very long time, is there any other way to speed up the processing time?
Thanks!

2 comentarios

Walter Roberson
Walter Roberson el 6 de Feb. de 2012
Is the data really packed in groups of 12 consecutive bits? It is not impossible, but it would be somewhat unusual.
Sounder
Sounder el 7 de Feb. de 2012
one 12 bits pixel is stored in 2 bytes. It's combined with 4bits of random number and 12 bits of data. So this is the only ezsy way I know to implement, but it takes long time to read.

Iniciar sesión para comentar.

 Respuesta aceptada

Jan
Jan el 7 de Feb. de 2012
You can read all 16 bits and set the upper 4 bits to zero:
data = fread(p, [768,1024], 'uint16');
b = uint32(rem(data, 4096));
I assume you can use the format 'uint16=>uint32' directly - please test if this is faster and if rem works on UINT32 arrays.

Más respuestas (0)

Categorías

Más información sobre Data Import and Analysis en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 6 de Feb. de 2012

Editada:

el 4 de Oct. de 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by