G-FAQ – Why is Bit Depth Important?
直接抄:
https://apollomapping.com/2012/August/article15.html
For this month’s Geospatial Frequently Asked Question (G-FAQ), I pivot to a topic that deserves more attention than it gets, and that is bit depth. Some of you may have heard this term when ordering imagery from Apollo Mapping or perhaps when downloading free Landsat data without understanding its implications. As such, let’s delve into this topic, addressing the following set of questions:
What exactly is bit depth and why is it important when ordering satellite imagery? Is 16-bit imagery harder to work with? When should I order 16-bit imagery versus 8-bit depth?
To start of this discussion, it is important to understand the difference between base-10 and binary number systems. In a base-10 system, each digit place in a number represents 10 possible values from 0 to 9 and then each successive digit place increases by ten-fold in its value. Let’s look at this mathematically:
Base-10 Number = 123
This can be written mathematically as: (1 x 10^2) + (2 x 10^1) + (3 x 10^0)
Which can be simplified to: (1 x 100) + (2 x 10) + (3 x 1)
And final to: 100 + 20 + 3 = 123
Given our familiarity with math since the early days of school, creating base-10 numbers is something we do seamlessly as opposed to writing out a mathematical formula as most beginners working with binary number systems do. In a binary system, each digit place only has two possible values, 0 or 1. This mimics a computer chip which can either be off (0) or on (1) – and this is the reason that computers are based around binary numbers at the system code level. So then, let’s see how a binary number is created mathematically:
Binary Number* = 111 1011
This can be written mathematically using base-10 numbers as: (1 x 2^6) + (1 x 2^5) + (1 x 2^4) + (1 x 2^3) + (0 x 2^2) + (1 x 2^1) + (1 x 2^0)
Which can be simplified to: (1 x 64) + (1 x 32) + (1 x 16) + (1 x 8) + (0 x 4) + (1 x 2) + (1 x 1)
And final to: 64 + 32 + 16 + 8 + 0 + 2 + 1 = 123
* In binary numbers, you add a space every fourth digit to the left of the decimal place.
By following steps similar to what I present above, you can convert any binary number to base-10 – though going from base-10 to binary involves more effort, check this website out for more details on those steps.
Now that we have explored binary number systems, we can pivot our attention back to bit depth. Satellites are based on binary numbers and as such bit depth is measured accordingly. The bit depth of a satellite tells you the maximum number of values it can measure per spectral band. The higher the bit depth, the more information it can measure and thus the more sensitive the sensor is to different illumination values (typically called digital numbers) of the surface of the planet.
As we explained in more detail last month, a passive optical satellite measures the intensity of photons that are reflected from the surface of our planet. Take for example two hypothetical satellites, one with 8-bit depth and the other with 9-bit depth. The 8-bit depth satellite can measure up to 2^8 digital number values (or 256 values) for the intensity of photon reflection; while a 9-bit depth satellite can measure up to 2^9 values (or 512).
To look at that same hypothetical situation another way, for each value an 8-bit depth satellite can measure, the 9-bit depth satellite can measure two values. That means the 9-bit satellite is twice as sensitive in each of its spectral bands as is the 8-bit satellite. Now remember that most satellites offer at least 4 multispectral bands. As such, a 9-bit depth satellite can produce 16 times the number of RGB + NIR values for each pixel in 4 band multispectral imagery than can an 8-bit depth satellite – this has important implications I will discuss later in this G-FAQ series.

It is important to note that rarely, if ever, will satellite imagery utilize the entire range of pixel values possible with its bit depth. Imaging companies such as DigitalGlobe make the conscience decision to ‘dampen’ satellite systems, assuring that digital numbers close to the maximum possible (i.e. 2047 for 11-bit and 4095 for 12-bit depth) for each pixel are rarely reached. When the maximum value is reached and/or exceeded, flares can occur which destroy the spectral information in this pixel and surrounding ones.
Now that I have explained the basics, let’s take a look at the bit-depth ordering options for satellite imagery. If you have ever placed an order with Apollo Mapping for imagery products, you may have noticed that the two options for bit depth are 8 and 16, not 11 or 12 as in the table above. The reason for defining bit depth in increments of 8 ties back to computer technology. A single bit of information – either a 0 or 1 – is memory’s building block. Since the 1960s, it has been common practice for 8 bits to make up a single byte; so that 2 bytes is comprised of 16 bits of information.
As such, the binary digital numbers that are embedded in satellite imagery files (a TIFF usually) will either be 8-bits or 16-bits in length. In order to make 11 or 12-bit depth imagery 16 digits (or bits) long, 0’s are added to the front of the binary number so that the value itself remains unchanged. When 11 or 12-bit depth data is delivered as 8-bit depth imagery, the values are scaled so that each 8-bit depth pixel value represents multiple 11/12-bit depth values. Accordingly, 8-bit depth imagery will show less spectral variability. This 11/12-bit to 8-bit depth scaling process can also introduce additional signal noise. One term you might hear associated with 8-bit Red, Green, Blue (or Natural Color) imagery is 24-bits. They use this term as it is 3 spectral bands with 8-bit depth each, or 3 x 8 = 24-bit imagery.
In next month’s edition of G-FAQ, I will continue this discussion on bit depth by looking at the advantages and disadvantages of 8 and 11/12-bit depth imagery as well as provide recommendations on when to order each.
Until our next edition of G-FAQ, happy GIS-ing!
Do you have an idea for a future G-FAQ? If so, let me know by email at brock@apollomapping.com.
Find Out More About This Topic Here:
- Indiana University - Knowledge Base
- Penn State University - Chapter 8: Remotely Sensed Image Data
- Regional and Mesoscale Meteorology Branch - Effect of Bit Depth on GOES Images
Brock Adam McCarty
Map Wizard
(720) 470-7988
brock@apollomapping.com
G-FAQ – Why is Bit Depth Important?的更多相关文章
- comp.lang.javascript FAQ [zz]
comp.lang.javascript FAQ Version 32.2, Updated 2010-10-08, by Garrett Smith FAQ Notes 1 Meta-FAQ met ...
- [笔记]The Linux command line
Notes on The Linux Command Line (by W. E. Shotts Jr.) edited by Gopher 感觉博客园是不是搞了什么CSS在里头--在博客园显示效果挺 ...
- OpenSSL Command-Line HOWTO
OpenSSL Command-Line HOWTO The openssl application that ships with the OpenSSL libraries can perform ...
- ArcGIS中的坐标系定义与转换 (转载)
原文:ArcGIS中的坐标系定义与转换 (转载) 1.基准面概念: GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐 ...
- ArcGIS 坐标系统文件
坐标是GIS数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标. ArcGIS自带了多种坐标系统,在${ArcGISHome}Coordinate Systems目录下可 ...
- [XAF] How to improve the application's performance
[自己的解决方案]数据量大时,可显著提升用户使用体验! 1.Root ListView 参考官方的E1554 点击导航菜单后首先跳出查询条件设置窗体进行设置 可设置查询方案或查询方案的查询条件,排序字 ...
- POJ 1330 Nearest Common Ancestors (最近公共祖先LCA + 详解博客)
LCA问题的tarjan解法模板 LCA问题 详细 1.二叉搜索树上找两个节点LCA public int query(Node t, Node u, Node v) { int left = u.v ...
- Storage Systems topics and related papers
In this post, I will distill my own ideas and my own views into a structure for a storage system cou ...
- HD1281棋盘游戏(匹配+好题)
棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
随机推荐
- SQL*LOADER错误总结
在使用SQL*LOADER装载数据时,由于平面文件的多样化和数据格式问题总会遇到形形色色的一些小问题,下面是工作中累积.整理记录的遇到的一些形形色色错误.希望能对大家有些用处.(今天突然看到自己以前整 ...
- YARN与MRv1的对比
YARN与MRv1的对比 转载请注明出处:http://www.cnblogs.com/BYRans/ Hadoop 1.0存在的问题 由于Hadoop 1.0的良好特性,Hadoop 1.0被应用到 ...
- Windows Server 2012 虚拟化实战:存储(一)
在计算机世界我们随处可以见的一种方法,那就是抽象.1946年冯诺依曼提出了计算机的基本结构包含:计算器,存储器和I/O设备.这可能是对计算机这一新生事物最重要的一次抽象,它直接影响了今后几十年计算机软 ...
- SSL handshake alert: unrecognized_name error since upgrade to Java 1.7
今天将jdk从1.6升级到1.7,但是HttpUrlConnection连接https出现问题了. javax.net.ssl.SSLProtocolException: handshake aler ...
- c语言中类型隐性转换的坑
谨记:在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换. 举例子如下: #include <stdio.h> void func(voi ...
- 前端构建工具gulp使用
前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ...
- jboss配置数据源
配置的是mysql的数据源 找到jboss-.GA\docs\examples\jca\mysql-ds.xml 复制一份到jboss-.GA\server\default\deploy目录下 然后修 ...
- Freemarker与Servlet
1.导入jar包(freemarker.jar) 2.web.xml配置一个普通servlet <servlet> <servlet-name>hello</servle ...
- pycharm的使用破解和Anaconda的使用
1.pycharm的破解: 版本: pycharm 2016.2.3 链接: 下载专业版本 下面是这个版本的注册码: 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTcz ...
- http协议进阶(三)http报文
一.报文流 http报文是在http应用程序之间发送的数据块(也可称为数据包).这些数据块以一些文本的元信息(meta-information)开头,描述了报文的内容及含义,后面跟着 可选的数据部分, ...