数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)

细说数据的大小端

        图像的大小端或者说数据的大小端就是我们常说的Big-endian与Little-endian, 当你要用一个看图软件去打开一个raw格式的图像时,他除了让你输入图像的基本信息以外,还会让你选择该图是Big-endian还是Little-endian?例如,下图展示的是我用看图软件ImageJ来打开一个raw图时的操作界面。

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第1张图片


大小端就是数据的Byte Order 

        一般情况下,当我们按照unsigned short(即,WORD)或者说是按照一个字来保存图像的数据时,一般会有两个选择:

1,区分数据的Bit Order也就是High bit和Low bit。

2,区分数据的Byte Order, 即,Little-endian和Big-endian

其实,图像的大小端指的就是保存图片时,图像数据格式中的Byte order一般情况下raw格式默认的是Big-endian(也就是自然的,正常的,保存数据的格式)如果你的图像是Little-endian,就需要把byte order反转过来。

首先,我们先来简答的了解一下,字节byte和bit比特概念。

假定我定义某个系统的一个字长为16bit,那么对于这个系统而言,我们可以有如下表述:

1,1byte=8bit

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第2张图片

 2,1word=2byte=16bit

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第3张图片

Big-endian就是说按照正常顺序保存数据

比如说我们把数4080存在一个字中:

        首先,log(4080)/log(2)向2的整数次幂取整得到12。说明我们在二进制模式下要保存这个数需要12位,也就是12bit。这样一来就会有16-12=4个空位。而正常的保存方式是,从零开始往大写,大于最高位的地方空下来,如下:

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第4张图片

 如果用Little-endian来保存则需要翻转byte order

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第5张图片

 可见,经过交换左右byte中的数据后(注意,只交换byte而不改变byte中的内容),原来的4080变成了61455,但这不是我们想要的原始数据,如果要读little-endian保存的数据就需要解码。


解码Little-endian

        如果你手头有一个以Little-endian的方式保存的图片,你该怎么读呢?reverse byte order。我这里分别记录了如何从理论上反转byte order,以及在计算机上反转byte order的详细算法。

反转byte order的原理

        我在下图的笔记里,记录了如果反转byte order的过程,也就是怎样把Little-Endian变成Big-Endian。

        其中,笔记中的第一步和第二部,分别记载了如果取出数据的低八位和高八位。第三步,记录了如何把little-endian的数据变成big-endian的数据,也就是如果解密Little-Endian。

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第6张图片

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第7张图片

反转byte order的详细算法 (C语言)

(8位表示一个byte)

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第8张图片


 

(全文完) 

作者 --- 松下J27

数字图像处理 --- 图像的大小端Big-endian (BE) or Little-endian (LE)_第9张图片

(*配图与本文无关*)

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

你可能感兴趣的:(Digital,Image,Processing,图像处理)