Chapter 3 数据表示法
3.1 数据和计算机
数据(data) : 基本值或事实
信息(information): 用有效的方式组织或处理过的数据
计算机可以存储、表示和帮助我们修改各种类型的数据,包括
文本、音频、图像和图形、视频
这些数据最终都被存储为二进制数字
多媒体(multimedia): 几种不同的媒体类型
数据压缩(data compression): 减少存储一段数据所需的空间
带宽(bandwidth): 在固定时间内从一个地点传输到另一个地点的最大位数或字节数
压缩率(compression radio): 原始数据的大小除压缩后的数据大小
无损压缩(lossless compression): 不会丢失信息的数据压缩技术
有损压缩(lossy compression): 会丢失信息的数据压缩技术
A. 模拟数据和数字数据
模拟数据(analog data) : 用连续形式表示信息
数字数据(digital data): 用离散形式表示信息
数字化(digitize): 把信息分割成离散的片段
脉冲编码调制(PCM pulse-code modulation): 电信号在两个极端之间跳跃的变化
重新计时(reclock): 在信号降级太多之前将它重置为原始状态的行为
在信号沿线下降时,因为所有的电信号(模拟或数字信号)都会降级;
但是模拟信号降级丢失信息,数字信号因为通过阈值来判断高低电压,所以数字信号会
被周期性的重新计时,在信号降级太多前重新计时,就不会丢失信息。
B. 二进制表示法
n位2进制数字能表示2^n种状态
计算机体系结构一次能够寻址和移动的位数有一个最小值,通常是2的幂
分配给任何类型的数据的最小存储量通常是2的幂的倍数
3.2 数字数据的表示法
A. 负数表示法
1. 符号数值表示法(signed-magnitude representation)
符号表示数的所属分类,值表示数的量值的数字表示法
在计算机中会出现+0、-0问题
2. 定长量数
指允许用定量的数值,那么可以用一半表示正数,一般表示负数,符号由
数的量值决定
A-B = A+(-B) : 从一个数中减去另一个数,等于加上该数的负数
十进制补码 (ten's complement)
对于正整数I,它的负数补码 Negative(I) = 10^k - I ,k是数字个数
3. 二进制补码
在二进制补码中,负数的最左边一位总是1,所以可以立刻判断数字的正负
4. 数字溢出
溢出(overflow): 给结果预留的位数存不下计算出的值的状况
是把无限的世界映射到有限的机器上会发生的典型问题
B. 实数表示法
在计算机中,我们把实数存储为一个整数加指示小数点位置的信息
定义二进制浮点值
符号*尾数*2^exp
小数点(radix point): 在记数系统中,把一个实数分割成整数部分和小数部分的点
浮点表示法(floating point): 标明了符号、尾数和指数的实数表示法
把十进制数字的小数部分转化成其他进制:
用新的数乘这个小数部分,乘法的进位将成为答案左边的下一位数字,
乘法结果中的小数部分将成为新的被乘数,整个过程直到乘法结果中的小数部分为0截止
科学计数法(scientific notation): 另一种浮点表示法
其中,小数点总是出现在最左边的数字右侧,即整数部分只有一位
因为早期的机器不能输出指数,所以用E代替,例如 12001.32708 将被写为 1.200132708E+4
3.3 文本表示法
字符集(character set): 字符和表示它们的代码的清单
A. ASCII字符集
ASCII(American Standard Code for Information Interchange) 美国信息互换标准代码
最初,ASCII字符集用7位表示每个字符,可表示128个,每个字节的第8位被用作校验位,协助数据传输正确
后来,用8位表示每个字符,为 Latin-1 扩展ASCII字符集,可表示256个字符
前32个ASCII字符没有简单的字符表示法,不能输出到屏幕上,它们是为特殊用途保留的,如回车
和制表符,处理数据的程序会用特定的方式解释他们
B. Unicode字符集
因为ASCII不能满足国际需要,所以导致Unicode字符集的出现,它的创建目标是表示世界上所使用的
所有语言中的所有字符。此外,它还表示许多补充的专用符号,如科学符号。
它使用16位来表示每个字符。
为保持一致,Unicode字符集被设计为ASCII超集,前256个是与ASCII字符一致。
C. 文本压缩
1. 关键字编码
(keyword encoding): 用单个字符代替常用的单词
例如:
as ^ , must & , the ~ , well % , and + , these # , that $
存在局限性:
a. 用来对关键字编码的字符不能出现在原始文本中
b. 不能够代替不同的大小写 比如 The 不能用 ~ 代替
c. 代替的单词越长,压缩率就越高,但是这些单词不一定出现频率高
2. 行程长度编码(迭代编码)
(run-length encoding): 把一系列重复字符替换为它们重复出现的次数
在某些情况下(例如DNA),一个字符可能在一个长序列中反复出现
在行程长度编码中,重复字符的序列将被替换为标志字符
如果用*表示标志字符
则 AAAAAAAA 可以编码为 *A8
3. 赫夫曼编码
(Huffman encoding): 用变长的二进制串表示字符,使常用字符具有较短的编码
赫夫曼编码的一个重要特征是,用于表示一个字符的位串不会是表示另一个字符
的位串的前缀。因此,在从左到右扫描一个位串时,每当发现一个位串对应于一
个字符,那么这个位串一定表示这个字符。
3.4 音频表示法
在计算机上表示音频信息,必须数字化声波,把它分割成离散的、便于管理的片段。
方法之一是真正数字化声音的模拟表示法。也就是说,采集表示声波的电信号,用一系列
离散的数值表示它。
模拟信号是随电压连续变化的。要数字化这种信号,需要周期性的测量信号的电压,记录
合适的数值,这一个过程称为采样,最后得到的不是连续的信号,而是表示不同电压电平
的一系列数字
一般来讲,采样率在每秒40000次左右能够创建合理的声音复制品。低于该值,人耳所听失真。
A. 音频格式
WAV,AU,AIFF,VQF,MP3等。尽管所有格式都是基于模拟信号采样得到的电压值的,但是
它们格式化信息细节的方式不同,采用的压缩方式也不同。
B. MP3音频格式
MP3是MPEG-2 audio layer 3 的缩写
MPEG :Moving Picture Experts Group 运动图像专家组
(为数字音频和视频开发压缩标准的国际委员会)
MP3格式使用有损压缩和无损压缩两种方法。首先,它将分析频率展开,与人类心理声学
的数学模型进行比较,然后舍弃那些人类听不到的信息,在用赫夫曼编码进一步压缩得到的位流
3.5 图像和图形的表示法
A. 颜色表示法
在计算机中,颜色常用RGB(red-green-blue)值表示,是三个数字,0~255,表示每个原色参与分值
RGB值的概念导致了三维的"色空间"。
用于表示颜色的数据量称为色深度。通常用颜色的位数来表示色深度。
增强色彩表示色深度为16位的颜色,RGB的值每个数字由5位来表示,剩下的一位有时用于表示透明度
真色彩指深度为24位的颜色,RGB值每个数字由8位来表示
B. 数字化图像和图形
照片是图像的模拟表示,它的表面是连续的,一种颜色的色度与另一种颜色的混合在一起。
数字化一幅图像是把它表示为一套独立的点,这些点称为像素,代表图像的元素。
每个像素由一种颜色构成。表示一幅图像使用的像素个数称为分辨率
像素(pixels): 用于表示图像的独立点,代表图像的元素
分辨率(resolution): 用于表示图像的像素个数
逐个像素存储图像信息的方法称为 光栅图形格式,流行格式有位图(BMP)、GIF和JPEG
光栅图形格式(raster-graphics format): 逐个像素存储图像信息的格式
C. 图形的矢量表示法
矢量图形是另一种表示图像的方法,矢量图形格式不像光栅图形那样把颜色赋予像素,而是用
线段或几何形状来描述图像,所以矢量图形是一系列描述线段的方向、线宽和颜色的命令
矢量图形可以通过数学计算调整大小,这些改变可以根据需要动态地计算。
矢量图形(vector graphics): 用线段或几何形表示图像的方法
流行的矢量格式 :Flash、SVG
3.6 视频表示法
视频编译码器
编译码器(codec)表示压缩器/解压缩器(Compressor/DECompressor)
视频便译码器(video codec) 指用于缩减电影大小的方法,使得它能够在计算机或网络上播放。
大部分编译码器都是面向块的,即,视频的每一帧将被分成一组矩形块。各个编译码器的不同
之处在于如何对这些块编码。有些视频编译码器完全有软件实现的,而有些需要专用的硬件。
视频压缩的两种方式
时间压缩(temproal compression): 根据连续帧之间的差别压缩电影的技术
空间压缩(spatial compression): 基于静态图像压缩方法的电影压缩技术