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 Comments

Is the data really packed in groups of 12 consecutive bits? It is not impossible, but it would be somewhat unusual.
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.

Sign in to comment.

 Accepted Answer

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.

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Asked:

on 6 Feb 2012

Edited:

on 4 Oct 2013

Community Treasure Hunt

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

Start Hunting!