奎克的藏经阁 · MinerU 解析内容

编码 隐匿在计算机软硬件背后的语言

438 个 PDF 物理页 · 本页显示文件第 431–438 页

PDF 物理页索引 430

文件中的第 431 页 · 印刷页码:414

ADC的转化长度为12比特,那么电压值的取值范围为000h\~FFFh,这样一来就可以区分出4096个不同的电压级别。

在一种名为脉冲编码调制(PulseCodeModulation)的技术中,以电压形式表示的声波将以恒定的频率被转换成数值。而这些数值将以小孔的形式刻在光盘表面,通过这种方式,电压就以数值的形式被存储在CD上。要读取这些信息时,可以通过分析从CD表面反射的激光读取到所存储的数值。在播放声音的时候这些数值又被转换成电流,这-过程利用到了数字模拟转换器(Digital-To-Analog converter,即 DAC,DAC 还可以用在彩色图形板上,将像素值转换成模拟信号并传输至显示器)。

声波电压在恒定的频率下被转换成了数字,该频率被称为采样率(samplingrate)。1928年,贝尔电话实验室的哈里·奈奎斯特(HarryNyquist)通过证明得到了一个总要结论:采样频率应至少为被采样信号(即被记录和播放的信号)最大频率的两倍。人类可以听到的声音的频率范围通常为20\~20,000Hz。CD使用的采样频率为每秒44,100次,比人类听觉范围最大频率的两倍还要大一些。

CD中存储的声音的动态变化范围决定了每次采样的比特数,这个范围就是CD存储声音的最高与最低频率之差。这难免给人感觉有些复杂:电流通过不断变化来模拟声波,其达到的最高峰称为声波的振幅(amplitude)。我们感知到的声音强度是振幅的两倍。1贝尔(bel,这个名称来源于Alexander Graham Bell最后一个单词的三个字母),代表着强度的10倍;1分贝(decibel)代表着1贝尔的十分之一。1分贝代表着人类所能感知到的声音最小强度变化。

如果每次采样大小为16比特,这样就能够表示96分贝的动态范围,这一范围的下限是刚好能听到的声音的阈值(低于这一值的声音是听不到的),而上限就是人们承受最大负荷声音的极限阈值。CD光盘的每个采样点就是用16比特表示的。

综上所述,CD光盘中每秒产生44,100个采样样本,每个样本占据2个字节。有时你还希望享受立体声效果,这样的话采样信息需要翻倍,则每秒总共需要176,400字节,算下来每分种需要10,584,000个字节(这是个庞大的数字,正因如此,20世纪80年代前数字记录声音的方法并没有普及)。74分钟的立体声CD需要字节数为783,216,000。

相对于模拟声音,数字化声音的优点不言而喻。特别是在模拟声音被复制的时候(例如把录音磁带转录成电唱片)难免会有些失真。而对于用数字形式表示的数字化声音而言,都可以实现无失真的转录或复制。细心观察的人会发现,过去在电话通话中,信号传输线路越长则声音越糟。这种情况已经一去不复返了,因为现在大部分电话系统都已经数字化了,即使你打跨国电话,听筒中的声音也像在对街对话一样清晰。

编码——隐匿在计算机软硬件背后的语言

414

PDF 物理页索引 431

文件中的第 432 页 · 印刷页码:415

CD可以存储声音,也可以存储数据。专门用来存储数据的CD统称为CD-ROM(CD只读存储器),通常CD-ROM最大存储容量约为660MB。如今许多计算机中都配备CD驱动器,而应用程序及游戏软件都可以存储在CD-ROM中。

声音、音乐、视频逐渐走入个人计算机是在大约10年前,当时统称为多媒体(multimedia),虽然这几年发展很迅速,但这个名字已经普遍使用开来,所以也就不需要新起一个特别的名称了。如今的家用计算机都配备声卡,声卡中包含一个ADC,它可以将麦克风传输的模拟声音信号转储成为数字信号,此外还包括一个DAC,它的作用是帮助扩音器播放录制的数字声音。声音还可以按照波形文件(waveformfiles)方式存放于磁盘。

在我们使用家用计算机录制和播放声音的时候,其实对声音质量要求并不高,一般不会苛求达到CD的效果,所以Macintosh和 Windows 这两种操作系统提供了较低的采样频率,尤其是22,050Hz、11,025Hz和8,000Hz这三种频率,采样信息量也保持在较少的8位,并且使用了频度录制手段。声音录制时所占的存储容量也减少到了每秒8000字节,这样算下来每分钟约占480,000字节。

很多人在科幻电影及电视剧集中看到过这样的场景,未来的计算机正在用纯正的英语与用户进行交互。只要计算机配备了录制和播放数字化声音的硬件,那么实现这个目标不过是一个软件问题。

如果要使计算机能够用易于理解的单词和句子与人交谈,有很多种方法。一种方法是预先录制句子、短语、单词还有数字,然后将它们以文件的形式存储,之后使用多种形式将其糅合在一起。这种方法常见于电话公司的信息系统中,在这种环境下只需要有限的单词、数字及其组合,因此这种方式能适用。

有一种更加通用的声音合成方法,它把ASCI码字符转换成波形数据。例如在英语拼写方面,由于存在很多不一致性,软件系统需要使用一个词典或复杂的算法来确定单词的准确发音。一个完整的单词由基本的音节(也叫做音素,phonemes)组成。一般情况下软件都需要做一些其他方面的调整。如果一个句子后紧跟着的是问号,则最后一个单词的发音频率必须相应提高。

25 图形化革命

415

PDF 物理页索引 432

文件中的第 433 页 · 印刷页码:416

语音识别(voice recognition)——把波形数据转换成 ASCⅡI码字符——这个是一个极其复杂的过程。其实许多人在理解口语化的方言时也有很多困难。在使用个人计算中的语音处理软件时,通常需要对软件进行样本训练,以便软件能尽量准确地转录某个人的话语。这中间涉及的问题已经大大超出了ASCI码文本转换的范畴,从本质上来讲是一个利用编程技术使得计算机“理解”人类语言的过程。这类问题正是人工智能(artificialIntelligence)所研究的领域。

当今计算机中的声卡还配备了小型电子音乐合成器,它能模仿128种不同的乐器和47种不同的打击乐器,这类设备被称做 MIDI合成器。MIDI即乐器数字接口(MusicalInstrument Digital Interface),这项发明出现于在20世纪80年代早期,由一家电子音乐合成器制造协会推出,主要用于将电子乐器组合起来,并且连到计算机上。

MIDI合成器的类型不同,它们合成乐器声音的方法也就不同,有一些方法的效果更加逼真。MIDI合成器所展现出来的特性已经超越了MIDI所定义的范畴。但其实它的功能就是以演奏声音的方式来响应短消息序列—长度通常为1、2或3个字节。MIDI消息本身就指明了所需要的乐器、将要演奏的音符,或正在演奏的音乐的休止符。

MIDI文件不仅包含了一系列MIDI消息集合,还包括了时间信息。通常一个MIDI文件“麻雀虽小,五脏俱全”,包含了整套演奏信息,因此可以由计算机上的MIDI合成器完整地演奏。相比于包含同样一段音乐的波形文件,MIDI文件通常要小得多。就文件的相对大小而言,如果把一个波形文件比作位图文件,则MIDI文件就好像矢量图元文件。MIDI文件的缺点来源于MIDI合成器的异构性:同样一个MIDI文件可能在一个合成器上完美演奏,但在另一个合成器上可能不堪入耳。

数字化电影是多媒体的另一片天地。把一系列静止图像快速播放,可以达到电影和电视图像中出现的物体移动效果。我们把这期间出现的单个图像称为帧(frames)。电影的播放速率为24帧/秒,北美的电视节目为30帧/秒,世界上大部分地方的电视为25帧/秒。

编码—隐匿在计算机软硬件背后的语言

416

PDF 物理页索引 433

文件中的第 434 页 · 印刷页码:417

计算机中的电影文件一般都是由一系列附带声音的位图组合而成。但是如果不经过压缩处理,一部电影文件中的数据量将会很大。假如电影中每一帧包含的像素大小是640×480,每个像素为24位真彩色,那么每一帧的大小就为921,600字节。如果播放速度为30帧/秒,则每秒需要的存储空间为27,648,000字节。照这样计算下去,每分钟需要的空间大小为1,658,880,000字节,一部两小时的电影需要199,065,600,000字节,大约200GB。正因如此,我们的计算机上播放的电影经常很短、解析度很小,而且清晰度很差。

就像JEPG压缩技术可以用来减少静态图像所占的数据空间一样,MPEG压缩技术用于处理动态电影文件。MPEG 全称是移动图像专家小组(Moving Pictures Expert Group)。动态图像压缩技术基于的是一种客观事实,即每一帧继承了前一帧的大部分信息,也就是说存在冗余信息。

针对不同的多媒体产品有不同的MPEG标准。MPEG-2 用于高清晰度电视(high-definition television,HDTV)及数字影音光盘(digital video discs,DVD)。DVD也叫数字多用光盘(digital versatile discs),其物理大小与 CD一样,但是 DVD的两面都可以记录数据而且每一面有两层。在DVD中,视频信息可以压缩为原始大小的五十分之一,因此前面提到的一部两小时的电影将占据4GB的空间,而且只占据其中一面的一层。所以一张具有两面四层的DVD盘容量可达到16GB,容量达到了CD的25倍。如果不出预料,在未来的某一天,DVD将替代CD-ROM成为新的软件存储媒介。

随着CD-ROM和DVD-ROM的出现,这是否意味着万·布什预言的麦克斯储存器在今天成为了现实?最原始的麦克斯储存器设想中,使用的原材料是缩微胶片,但显然CD-ROM和DVD-ROM更合适担此重任。由于电子媒体易于检索,它们比物理媒体更具有优越性。可惜同时访问多个CD或DVD驱动器并不现实。我们的存储设备有一点与万·布什所提出的概念有所不同,那就是所有信息并不一定要触手可及,真正使它们达到信息共享的做法是计算机互连,这样做还可以更有效地利用存储空间。

对计算机进行公开性远程操作的第一人是乔治·史帝比兹(GeorgeStibitz),也正是他,在20世纪30年代设计了贝尔实验室的继电器计算机。对继电器计算机的远程操作的演示地点在达特茅斯,时间是在1940年。

电话系统在线路上传输的是声音,而不是比特。在电话线路上传输比特需要先将其转换成声音,传输完之后在转换回比特。单一频率和振幅的连续声波(统称为载波,carrier)

25 图形化革命

417

PDF 物理页索引 434

文件中的第 435 页 · 印刷页码:418

无法表达完整清晰的信息。但如果对声波进行一些调整—说得专业一点就是,对声波进行调制(modulate)使其反映两种不同的状态—通过这种方式可以表示出0和1。将比特与声波进行互相转换的设备被称做调制解调器(modem,它包括调制和解调两个功能)。调制解调器以串口(serial)形式工作,因为字节中的单个比特是一个接一个传输的,而不是一拥而上(打印机一般通过并行接口与计算机相连:整个字节由8根线并行传输)。

早期调制解调器采用了频移键控(frequency-shift keying,FSK)技术。假设调制解调器的处理速度为300bps,而且二进制数0被调制到1070Hz,而1被调制到1270Hz。每个字节被夹在一个起始位和一个停止位中间,所以每个字节其实占据了10位空间。在300bps的传输速率下,每秒传输的字节数为30个。现在许多采用先进技术的新一代调制解调器速度超过了它的100倍。

早期家用计算机的狂热爱好者可以使用计算机和调制解调器建立电子公告牌系统(Bulletin Board System,BBS),其他计算机可以接入到这个系统中并下载(download)文件,这意味着文件从远程计算机中传输到了自己的计算机。这些概念发展广泛,甚至于扩展到了大型信息服务领域中,例如线上资料库服务((CompuServe)。在大多数环境下,通信中采用的一般都是ASCII码。

Internet与这些早期的发明有本质上的差别,因为它是一种非中心化的系统。Internet从本质上来讲是一组协议的集合,这些协议是计算机之间相互通信的保证。众多的协议中,最重要的当属TCP/IP协议,它包括了传输控制协议(Transmission Control Protocol,TCP)和网际协议(Intermet Protocol,IP)。这种协议使得传输过程变得规则化,不再是简单地通过线路传输ASCII码字符,而由基于TCP/IP协议的传输系统把大的数据块分割成小的包(packets),之后在传输线路上(通常是在电话线上)独立发送,最后在传输线路的另一端将数据重新组装起来。

Internet中最流行的是万维网(World Wide Web),而这一部分与图形联系最紧密。万维网采用了HTTP 协议来支持其工作,HTTP(Hypertext Transfer Protocol)即超文本传输协议。几乎所有在Web页面上看到的数据都遵循一定格式,那就是HTML(HypertextMarkupLanguage),即超文本标记语言。其中超文本(hypertext)这个单词用来描述相关链接信息,非常类似于万·布什预言的麦克斯储存器。HTML文件可以包含指向其他Web页面的链接,这样可以轻松访问其他页面。

编码隐匿在计算机软硬件背后的语言

418

PDF 物理页索引 435

文件中的第 436 页 · 印刷页码:419

HTML与本章前面讨论过的富文本格式(RTF)很相似,它们都含有带有格式信息的ASCII码文本。HTML也可包含多种图片格式,例如:GIF 文件、PNG(portable networkgraphics,便携式网络图像格式)文件,以及JFIF(JPEG文件交换格式)等。大部分万维网浏览器都支持浏览HTML文件,这是文本格式的优势所在。易检索性也是HTML被定义成文本文件的另一个优点。虽然名字可能有些让人迷惑,但HTML与我们在第19章和第24 章讲到的语言不同,它并不是真正的程序设计语言。Web 浏览器首先读取 HTML文件,根据读取到的内容显示文本和图形并编排它们的格式。

当我们浏览某些Web页面并进行一些操作时,有一些特殊程序需要并发执行,程序中的代码可以运行在服务器端(Server,用来存储原始Web页面的计算机)或客户端(Client),我们自己的计算机就是客户端。服务器端责任重大,通常要完成一些重要的处理工作(例如解释客户端填写的在线表格),服务器端的工作可以通过公共网关接口(Common GatewayInterface,CGI)脚本来处理。而对于客户端,HTML文件可以包含简单的程序设计语言,例如著名的 JavaScript。Web 浏览器可以对 Java Script 语句进行解释,就像解释HTML文本一样。

为什么Web站点不为我们的计算机提供一个可执行程序,如果这样的话问题一下子就解决了。要回答这个问题,我们首先要明确:我们的计算机是什么样的?如果使用的是Macintosh 机,那么这个可执行程序需要包含 Power PC 机器码,而且需要引用 Mac OS中的API函数;如果是一台PC兼容机,那么这个可执行程序需要包含Intel Pentium机器码,而且需要使用WindowsAPI函数。但计算机及图形操作系统的种类繁杂,还有许多其他类型的计算机和图形操作系统。进一步来说,我们也不想毫无目的地下载可执行文件,它们很可能来自于非信任站点而且会带有恶意行为。

上述问题的答案就在 Sun 公司开发的 Java 语言中(请勿与 JavaScript混淆)。Java 是一款成熟的面向对象程序设计语言,和C++有些类似。前面章节中我们讨论过编译语言(compiledlanguages,可产生包含机器码的可执行文件的语言)和解释语言(不可产生可执行文件的语言)之间的区别,Java是一种介于两者之间的语言。它需要经过编译,但编译的结果不是机器码,而是 Java 字节码(Java byte codes)。Java字节码与机器码在结构上很相似,但Java字节码可以在一种虚拟的计算机下被解释,即Java虚拟机(JavaVirtualMachine,JVM)上。被编译的 Java程序产生Java字节码,之后计算机模拟 JVM对其进行解释。Java程序的运行可以不受限于机器与图形操作系统的类型,所以它具有平台无关性(platform- independent)。

25 图形化革命

419

PDF 物理页索引 436

文件中的第 437 页 · 印刷页码:420

关于如何利用电流在线路上传输信号和信息,在讲述这一点时本书利用了大段章节,但其实有一种更加行之有效的方法,那就是利用光纤一种由玻璃或聚合体制造的光导纤维,通过从不同角度对光进行反射达到光传输效果。光信号在光纤中的传输速率可以达到千兆赫兹即每秒十亿个比特。

展望未来,在以后的家庭和办公室中,光子似乎要替代电子承担海量信息传输的重任。比起莫尔斯码中的一“点”一“划”,比起为了与一街之隔的好友深夜交流而绞尽脑汁想出的闪光灯,光子的速度无与伦比。

编码隐匿在计算机软硬件背后的语言

420

PDF 物理页索引 437

文件中的第 438 页 · 印刷页码:未识别

从零开始构建一台计算机,原来一切如此奇妙!

10000111001111100010010001011000011100111(100010010001011000011100111110001001000101

关于作者:

CharlesPetzold是Windows编程界的一位大师,当今世界顶级技术作家。1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《视窗杂志》和Microsoft公司联合授予WindowsPioneer奖,以表彰他对Microsoft Windows所做出的贡献。

Petzold从1984年开始编写个人计算机程序,从1985年开始编写Microsoft Windows程序。1986年他在MicrosoftSystemsJournal的12月号上发表了第一篇关于Windows程序设计的论文。

从1986年到1995年,Petzold为PCMagazine撰写专栏文章,向读者介绍Windows和OS/2程序设计等方面的知识。直到今天他依然保持着WindowsGDI程序设计首席技术作家的地位。其大作ProgrammingWindows(Windows程序设计)是尽人皆知的Windows编程经典,曾深深地影响过一代程序员,该书目前已出至第5版。

上架建议:计算机>编程

定价:59.00元

博文视点·IT出版旗舰品牌技术凝聚实力·专业创新出版

Broadview www.broadview.

Microsoft

责任编辑: 艳玲