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 ...
随机推荐
- Elasticsearch配置文件说明
一.Cluster setting Cluster indices.ttl.interval 允许设置多久过期的文件会被自动删除.默认值是60秒. indices.cache.filter.siz ...
- hdu 5641 King's Phone
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5641 题目类型:水题 题目思路:将点x到点y所需要跨过的点存入mark[x][y]中(无需跨过其它点存 ...
- Linux的主机规划和磁盘分区
选择与Linux搭配的主机配置 CPU 只要不是老旧到让你的硬件系统死机的都能够支持 RAM 内存越大越好,内存的重要性要比CPU还要高,至少512MB Hard Disk 由于数据量与数据的访问频 ...
- ELF Format 笔记(十四)—— 段内容
ilocker:关注 Android 安全(新手) QQ: 2597294287 一个段 (segment) 由一个或多个节 (section) 组成,但这对 android linker 是透明的, ...
- 学习大神笔记之“MyBatis学习总结(二)”
MyBatis对表的增删改查操作 主要有两种方式:基于XML实现和基于注解实现. 完整项目结构: 工具类:MyBatisUtil-------用于获取 sqlsession pack ...
- 三维等值面提取算法(Dual Contouring)
上一篇介绍了Marching Cubes算法,Marching Cubes算法是三维重建算法中的经典算法,算法主要思想是检测与等值面相交的体素单元并计算交点的坐标,然后对不同的相交情况利用查找表在体素 ...
- UVA - 11584 Partitioning by Palindromes[序列DP]
UVA - 11584 Partitioning by Palindromes We say a sequence of char- acters is a palindrome if it is t ...
- 关于ES6新增的东西(二)
六.原生Promise 就是一个对象,用来传递异步操作的数据(消息) pending(等待.处理中)-> Resolve(完成.fullFilled) -> Rejected(拒绝.失败) ...
- 百度数据可视化图表套件echart实战
最近我一直在做数据可视化的前端工作,我用的最多的绘图工具是d3.d3有点像photoshop,功能很强大,例子也很多,但是学习成本也不低,做项目是需要较大人力投入的.3月底由在亚马逊工作的同学介绍下使 ...
- java并发编程学习: 原子变量(CAS)
先上一段代码: package test; public class Program { public static int i = 0; private static class Next exte ...