设计计算机的最初目的是进行数值计算,计算机中首先表示的数据就是各种数字信息。随着应用的发展,现在计算机数据以不同的形式出现,如:数字、文字、图像、声音和视频等。但是,在计算机内部,这些数据形式还是以数字的形式存储和处理的。
通过使用数字对各式各样的信息按照一定的规则进行编辑,最终变换为计算机易于识别的信息,这个过程称为数字化编码。用少量最简单的基本符号,对大量复杂多样的信息进行一定规律的组合。
编码的两大基本要素:
基本符号的种类(例如二进制的“0”和“1”)
组合规则
现代计算机内部采用二进制符号进行信息编码。
1 计算机中数据的表示方法任何一个二进制数N都可以表示为
N=S·2^E
其中E是一个二进制整数,称为数N的阶码,2为阶码的基数,S是二进制小数,称为数N的尾数。E和S可正可负。尾数S表示数N的全部有效数据,阶码E指明该数的小数点位置,表示数据的大小范围。
2 整数的表示整数是没有小数部分的整型数字。
符号——一个数的符号可以用一个二进制位来存储(0或者1)。
指数——指数(2的幂)定义为小数点移动的位数。其可以为正也可以为负。余码表示法(后面讨论)是用来存储指数位的方法。
尾数——尾数是指小数点右边的二进制数。它定义了该数的精度。尾数是作为无符号整数存储的。
为了让正的和负的整数都可以作为无符号数存储,计算机通常采用余码系统。在余码系统中,使用一个正整数(称为一个偏移量)加到每个数字中,用于把他们同一移到非负的一边。这个偏移量的值是2^(m-1)-1,m是内存单元存储指数的大小。
如32位计算机的偏移量:2^(m-1)-1=2^(8-1)-1=127
3.2 实数的算术运算
实数(浮点数)也可以进行包括加减乘除在内的算术运算。我们只介绍加法和减法,因为乘法和除法是加法和减法的多次重复运算。
浮点数加减法是同一个处理过程。步骤如下:
a 检验符号,如果符号相同,相加其值,结果符号与他们相同。如果符号不同,比较绝对值,绝对值大的减去小的,结果符号取绝对值大的一方。
b 移动小数点,使两者阶数相同。也就是说,当阶数不同时,数值小的一方将小数点左移,但要使值不变。
c 将变换后的数值进行加减运算(包括整数和小数部分)。
4 字符编码随着现代计算机运用的深入,计算机不仅仅进行科学计算,实际上更大量的工作是用于处理人们日常工作和生活中最常使用的信息形式,也就是所谓的非数值型数据,包括语言文字、逻辑语言、视频图像等非数值信息。这需要为计算机找到一种合适的方法来表达这些信息。
计算机中使用了不同的编码来表示和存储数字、文字符号、声音、图片和图像(视频)信息。
编码(或代码)通常指一种在人和机器之间进行信息转换的系统(体系)。编码是人们在实践中逐步创造的一种用较少的符号来表达较复杂信息的表示方法。
4.1 ASCII码
字符是非数值型数据的基础,字符与字符串数据是计算机中用得最多的非数值型数据。在使用计算机的过程中,人们需要利用字符与字符串编写程序、表示文字及各类信息,以便与计算机进行交流。为了使计算机硬件能够识别和处理字符,必须对字符按一定规则用二进制进行编码,使得系统里的每一个字母有唯一的编码;文本中还存在数字和标点符号,所以也必须有它们的编码。
1)ASCII码是使用最多和最普遍的字符编码,即美国信息交换标准代码(American standard code for Information Interchange)。
2)ASCII码有7位码和8位码两种形式 。
3)7位ASCII码:用七位二进制数进行编码的,可以表示128个字符,最高位恒为0。
4)8位ASCII码:用8位二进制数进行编码,可以表示256种字符;当最高位恒为0,与7位ASCII码相同,称为基本ASCII码;当最高位为1时,形成扩充ASCII码,各国一般把该码作为本国语言的字符代码。
5)键盘输入的数码0~9、52个大、小写英文字母A ~Z、a ~z、32个标点符号、运算符号、专用符号和34个控制符,采用7位ASCII码编码。
4.2 汉字编码
汉字也是字符,与西文字符比较,汉字数量大,字形复杂,同音字多,这就给汉字在计算机内部的存储、传输、交换、输入、输出等带来了一系列的问题。为了能直接使用西文标准键盘输入汉字,还必须为汉字设计相应的输入编码,以适应计算机处理汉字的需要。
汉字信息所涉及的编码:
4.2.1 汉字输入编码
汉字输入通常有键盘输入、语音输入、手写输入等方法,都有一定的优缺点。键盘输入方式:将每个汉字用一个或几个英文键表示,这种表示方法称为汉字的“输入编码”。
汉字输入编码的种类:
数字编码:如电报码、区位码等。特点:难于记忆,不易推广;
字音编码:如拼音码等。特点:简单易学,但重码多;
字形编码:如五笔字型、表形码等。特点:重码少,输入快,但不易掌握;
音形编码:如自然码、快速码等。特点:规则简单,重码少,但不易掌握
4.2.2 国际码和区位码
1980年我国颁布了《信息交换用汉字编码字符集基本集》代号为GB2312-80,是国家规定的用于汉字信息处理使用的代码依据,这种编码称为国标码。在国标码的字符集中共收录了6763个常用汉字和682个非汉字字符(图形、符号),其中一级汉字3755个,以汉语拼音为序排列,二级汉字3008个,以偏旁部首进行排列。
所有汉字字符用2个字节表示,高字节共分为94个区(01-94区),低字节分为94个位( 01 -94位), 汉字所在的区号和位号共同组合成该汉字的区位码,区位码为十进制。
非汉字图形字符排在01----15区;
一级汉字排在16---55区;
二级汉字排在56---87区;
例:“中” 区号54、位号48 ,区位码为5448
“国” 区号25、位号90,区位码为2590
国标码的转换:将汉字的区位码表示成16进制,在加上2020H。
即:国标码=(区、位码)16 2020H
4.2.3 机内码
汉字的机内码是计算机系统内部对汉字进行存储、处理、传输统一使用的代码,又称为汉字内码。汉字内码是与ASCII对应的,用二进制对汉字进行的编码。
一般用2个字节来存放汉字的内码,即双字节字符集(double-byte character set,简称DBCS)
4.2.4 矢量、点阵输出输出码
矢量方式存储的是描述字体的轮廓信息。
点阵是对汉字字形经过点阵数字化后的一串二进制数,又称为汉字字形码或字模。
一般显示用16×16点阵,打印用24×24、32×32、48×48等点阵。
点阵越多,打印的字体越好看,但占用的存储空间也越大.
4.2.5 汉字的整个处理过程
4.3 Unicode码
虽然ASCII码在字符编码领域占据主要地位,但是现在其他更具扩展性的代码也越来越普及,这些代码能够表示各种语言的文档资料。其中之一是Unicode,它是由硬件及软件的多家主导厂商共同研制开发的,并很快得到计算界的支持。
Unicode码采用唯一的16位模式来表示每一个符号。因此,Unicode由65536个不同的位模式组成——足以表示用中文、日文和希伯来文等语言书写的文档资料,则是Unicode对比ASCII码最大的优势。
Unicode即统一码,又称万国码,是一种以满足跨语言、跨平台进行文本转换、处理的要求为目的设计的计算机上字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码。Unicode的编码方式与ISO10646的通用字元集(亦称通用字符集)概念相对应,使用16位的编码空间。也就是每个字符占用2个字节。
对于中文而言,Unicode16编码里面已经包含了GB18030里面的所有汉字(27484个字)
Unicode扩展自ASCII字元集。其使用16位元编码,并可扩展到32位,这使得Unicode能够表示世界上所有的书写语言中可能用於电脑通讯的字元、象形文字和其他符号,这使其有可能成为ASCII的替代者。
UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式。其他实现方式还包括 UTF-16(字符用两个字节或四个字节表示)和 UTF-32(字符用四个字节表示),不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8 是 Unicode 的实现方式之一。
UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8 的编码规则很简单,只有二条:
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。
2)对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。
5 静态图像编码静态图像是与动态图像相对应的概念,专门指单幅的图形。是计算机大量使用的一种主要信息形式。
计算机表示静态图像的两种方式:
位图图像
矢量图
由于静态图像数据包含的信息量大、且其信息具有一定的规律,因此一般不采用直接编码的方式对其进行编码,而是经常采用一些压缩算法来表示图像信息。
5.1 位图图像
位图表示图象的方法中,图像被分成像素矩阵,也称点阵,每个像素是一个小点。像素的大小取决于分辨率。
把图像分成像素之后,每一个像素被赋值为一个位模式。模式的尺寸和值取决于图像。
例如:对于一个仅有黑白点组成的图像(例如棋盘),一个1位模式已足够表示一个像素。0模式表示黑像素,1模式表示白像素。如果采用8位,才可以表示256种颜色信息。
位图文件的基本编码格式为BMP(bitmap的缩写)文件。BMP是一种与硬件设备无关的图像文件格式。
标签图像文件(TaggedImageFileFormat,简写为TIFF)格式是图像专业领域使用较广泛的一种编码形式,主要用来存储照片和艺术图等对图像质量要求较高的平面图像。它也是位图文件格式的一种。
位图图象文件的方法中,体积太大,对计算机的存储和传输都产生很大压力。
静态图像文件信息具有一定的规律,在保证其基本信息正确的前提下,可以适当通过一定的算法缩小图像文件的大小。
为了存储和传输数据,在保留原有内容的条件下,缩小所涉及数据的大小是有益的(有时也是必须的)。这个技术称为数据压缩。数据压缩方案有两类。一类是无损压缩,一类是有损压缩。
无损压缩:指压缩后信息表达的质量没有下降,只是文件大小减小。
有损压缩:指在影响信息表达质量的前提下,为加大压缩效率,尽可能减小文件的大小。
5.2 矢量图
位图图像表示法存在的问题是,一幅特定的图像采用精确位模式表示后,必须存储在计算机中。随后,如果想重新调整图像的大小,就必须改变像素的大小,这将屏幕抖动情况。
矢量图表示方法并不存储位模式,它是将图像分解成一些曲线和直线的组合,其中每一曲线或直线由数学公式表示
当图像要显示或打印时,将图像的尺寸作为输入传给系统。系统重新设计图像的大小并用相同的公式画出图像。
每次调整矢量图时,计算机将绘图公式重新估算一次,并根据新公式画出图像,由于重新估算公式地计算量远小于调整像素,因此可以有效避免屏幕抖动现象。
6 动态数据的编码随着计算机使用的深入,其所涉及的信息种类也越来越广泛,不仅包含静态信息,也大量使用诸如声音、动画、影像等动态信息。
计算机中动态信息按表达形式可以归纳为两类:
音频信息
视频信息
6.2 音频信息的编码
音频编码方式也有非压缩编码和压缩编码两类,压缩编码又分为有损压缩和无损压缩两种。基本的音频编码是PCM(PulseCodeModulation,脉冲编码调制)方式
PCM的优缺点:
优点:处理后的音频信息音质较好
缺点:文件体积较大
MP3(MPEGAudioLayer-3)是目前最为普及的音频压缩编码格式,是MPEG1的衍生编码方案。MP3可以做到12:1的压缩比并保持音质基本可接受
6.2 视频信息的编码
视频是单幅图像在时间上的连续表示,是典型的动态数据类型。
动态视频的基础是前面讨论过的静态单幅图像,在这里称为帧。动态视频压缩的基础理论就是在单幅图像压缩的基础上,再结合帧与帧之间的相关性,进行进一步压缩。
最有影响的视频编码技术是MPEG(MovingPicturesExpertsGroup,动态图像专家组),它属于国际标准化组织(ISO/IEC)。MPEG标准主要有MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21等五个。
MPEG标准的视频压缩编码技术主要利用了具有运动补偿的帧间压缩编码技术以减小时间冗余度,利用DCT技术以减小图像的空间冗余度,利用熵编码则在信息表示方面减小了统计冗余度
7 计算机中数字、文字、图像、声音和视频的表示与编码
-End-