本节书摘来自华章出版社《计算机科学概论》一书中的第3章,第3.6节,作者[美]内尔·黛尔(Nell Dale)约翰·路易斯(John Lewis),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.6 视频表示法
视频信息的捕捉和压缩方法使它成了最复杂的信息类型之一。视频片段包含许多压缩的静态图像。网络上充满了质量不等的视频片段。随着视频压缩技术(即视频编译码器)的发展,一些质量问题在未来的几年中可能会得到改善。
视频编译码器
编译码器(codec)表示压缩器/解压缩器(COmpressor/DECompressor)。视频编译码器指用于缩减电影大小的方法,使电影能够在计算机或网络上播放。几乎所有的视频编译码器都采用有损压缩,以最小化与视频相关的数据量,因此,压缩的目标不是舍弃影响观众视觉的信息。
视频编译码器(video codec):用于缩减电影大小的方法。
大多数编译码器是面向块的,也就是说,视频的每个帧将被分成一组矩形块。各个编译码器的不同之处在于如何对这些块编码。有些视频编译码器完全是由软件实现的,而有的则需要专用的硬件。
视频编译码器采用的压缩方式有两种,即时间压缩和空间压缩。时间压缩将查找连续帧之间的差别。如果两个帧中的图像大部分都没有改变,那么何必浪费空间来复制所有近似的信息呢?关键帧是比较帧之间差别的参照物,它的完整图像都会被保存。对于连续的图像,只保存改变的部分(增量帧)。对于帧与帧之间变化不大的视频片段(如几乎没有活动实体的场景),时间压缩是一种有效的方法。
空间压缩将删除一个帧中的冗余信息。空间压缩的基本问题与压缩静态图像时遇到的问题一样。空间视频压缩常把颜色相同的像素(如湛蓝的天空)聚集在块(矩形区域)中,存储的不是每个像素的信息,而是块的颜色和坐标。这种思想与前面介绍的行程长度编码的思想近似。
**时间压缩(temporal compression):根据连续帧之间的差别压缩电影的技术。
空间压缩(spatial compression):基于静态图像的压缩技术的电影压缩技术。**
当今流行的视频编译码器有Sorenson、Cinepak、MPEG和Real Video。关于这些编译码器如何表示和压缩视频不属于本书介绍的范围。
**Bob Bemer
从1945年起,Bob Bemer就常出现在计算圈中。他的供职履历读起来就像20世纪后半期最具影响力的计算技术公司的清单。他曾经在Douglas Aircraft、RKO Radio Pictures、the Rand Corporation、Lockheed Aircraft、Marquardt Aircraft、Lockheed Missiles and Space、IBM、Univac Division of Sperry Rand、Bull General Electric(Paris)、GTE、Honeywell工作过,最后成立了自己的软件公司Bob Bemer Software。
在Bemer的简历上出现过很多飞机制造厂商,这一点都不奇怪,因为他的专业是数学,而且从Curtiss-Wright技术学院获得了航空工程学的毕业证书(1941)。在计算历史的早期,飞机制造商是工业界使用计算机的先驱。
在他的职业生涯中,Bemer致力于程序设计语言的开发。他开发了早期的FORTRAN编译器FORTRANSIT,还积极参与COBOL语言和CODASYL语言(一种早期的数据库建模和管理方法)的开发。此外,他还负责SIMULA语言开发基金的授权工作,这是一种引入了多个面向对象特性的模拟语言。
Bemer还是为新兴的计算业制定全球标准的委员会的成员。他是IFIP Computer Vocabulary Committee的美国代表、ISO/TC97/SC5 on Common Programming Languages的主席以及X3/SPARC Study Group on Text Processing的主席。
但是,Bemer最著名的工作是关于ASCII编码这种8位PC的标准内部码。当初,Bemer认识到如果一台计算机要与另一台计算机通信,它们需要传送文本信息的标准代码。Bemer发布了关于60多种计算机代码的调查报告,从而说明了对标准代码的需要。他拟订了标准委员会的工作计划,促使美国标准代码与国际代码相对应,编写了大量关于编码的文献,为ASCII的备用符号和适用其他语言的控制集争取到了正式的注册。
也许Bemer最重要的贡献是提出了转义符这种概念。转义符将通知系统转义符后的字符不再使用它的标准含义。例如,ESC(N)通知系统下列字符是与ASCII字符等价的Cyrillic字符。
1991年10月发布了16位编码的第一个版本Unicode。促使这种扩大的编码出现的原因有两个,一是16位计算机体系结构越来越流行了,二是Internet和万维网的盛行需要一种能直接包含全世界各种字母的编码。但是,ASCII并没有退出历史舞台,它是Unicode的一个子集。
2003年5月,Bemer得到了IEEE Computer Society颁发的计算机先驱奖(Computer Pioneer Award),以表彰他“通过ASCII、ASCII备用字符集和转义序列为满足世界对各种字符集和符号的需要”所做出的贡献。
Bob Bemer于2004年6月22日在位于得克萨斯州Possum Kingdom Lake的家中逝世。
——http://www.bobbemer.com/AWARD.HTM**
小结
计算机是多媒体设备,操作的数据从数字到图形,再到视频,无所不包。由于计算机只能操作二进制数值,所以所有类型的数据都必须表示为二进制形式。数据可以分为两类:连续的(模拟的)和离散的(数字的)。
整数值由它们对应的二进制值表示,负数的表示方法有符号数值表示法和补码表示法。实数由三部分构成,即符号、尾数和指定小数点位置的指数。
字符集是字母与数字字符以及表示它们的代码的清单。最常用的字符集是Unicode(每个字符由16位表示),ASCII是它的子集。使用8位字符集ASCII足够表示英语,但却不足以表示其他语言。压缩文本的方法有很多,可以减小存储文本的空间或减少在机器之间传递文本的时间。
音频信息被表示为数字化的声波。颜色由三个值表示,每个值说明了红色、蓝色或绿色的份额。表示图像的基本方法有两种,即位图和矢量图形。视频被分割成了一系列表示为图像的静态图像。
**道德问题:道德准则[2]
在计算领域有两个主要的组织:美国计算机协会(Association of Computing Machinery,ACM)以及电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)。IEEE代表了硬件方面,而ACM代表了软件方面。然而,在许多大学中,这种区别是模糊的。我们将展示两者的道德准则,这样你就可以将它们进行比较和对比。
IEEE道德准则
作为IEEE成员,我们认识到技术的重要性,它影响着世界各地的生活质量,我们接受对于我们的职业、成员和我们服务的社会的个人责任,我们特此致力于遵守最高的道德和职业准则,并且同意:
- 在进行决策时秉持符合大众安全、健康与福祉的原则,并及时揭露可能危及公众和环境的因素。
- 尽可能避免真实的或者能感知的利益冲突,并在冲突发生时告知相关组织。
- 在发表声明或对已有数据进行估计时保证诚实和真实。
- 拒绝一切形式的贿赂。
- 提高对技术及其相关应用、潜在影响的理解。
- 保持和提高我们的技术水平,并且仅在培训合格、经验充分或完全了解相关限制的情况下才能接受为他人进行的技术任务。
- 追求、接受和提供诚实的对技术工作的批评,承认并改正错误,正确地奖励他人的贡献。
- 公平对待所有人而无视种族、宗教、性别、残疾、年龄、国家等因素。
- 避免通过虚假或恶意的行为损害他人及其财产、名誉。
- 协助同行及同事的职业发展,支持他们遵守道德准则。
ACM道德准则(略)
不仅仅是单纯地复制,现为大家展示一张ACM制作的传单。**
练习
判断练习1~20中陈述的对错:
A.?对 B.?错
- 无损压缩意味着恢复的数据没有丢失任何原始信息。
- 计算机用模拟形式表示信息。
- 计算机必须使用二进制记数系统表示信息。
- 数字信号表示任何时间点的两个值之一。
- 4个二进制位可以表示32种状态。
- 数字的符号数值表示法有两种表示0的方法。
- 当为结果分配的位容不下计算出的值时,将发生溢出。
- 在ASCII字符集中,大写字母和小写字母没有区别。
- Unicode字符集包括ASCII字符集中的所有字符。
- 关键字编码是用单个字符代替常用的单词。
- 行程长度编码适用于压缩英语文本。
- 赫夫曼编码使用变长的二进制串表示字符。
- 音频信号的数字化是定期对它进行采样。
- CD是用二进制格式存储音频信息的。
- MP3音频格式舍弃了人耳听不到的声音。
- RGB值用三个数字值表示一种颜色。
- 索引颜色增加了图像可以使用的颜色数,因此增加了文件的大小。
- 光栅图形格式只有位图、GIF和JPEG三种。
- 矢量图形用线段和几何形状表示图像。
- 时间压缩方法中采用关键帧表示连续帧之间的变化。
从下列清单中,为练习21~26选择正确的术语。
A.?符号数值表示法 B.?小数点(radixpoint)
C.?使用频率 D.?采样
E.?模拟 F.?数字
- 数据是信息的连续表示法。
- 从中学时就开始使用的数字表示法是 。
- 如果数字的基数不是10,我们称小数点(decimal point)为 。
- 数据是信息的离散表示法。
- 赫夫曼编码是基于字符的 创建的。
- 音频信号的数字化是定期对它进行 。
练习27~79是问题或简答题。 - 为什么数据压缩是当前的重要课题?
- 有损数据压缩和无损数据压缩的区别是什么?
- 为什么计算机不易处理模拟信息?
- 具有长秒针的时钟是模拟设备还是数字设备?请解释原因。
- 将某物数字化是什么意思?
- 什么是脉冲编码调制?
-
用下列位数可以表示多少种状态:
a)4位 b)5位 c)6位 d)7位
-
尽管从二年级开始你就会计算简单的算术运算,请做下列小测试,确定你是否完全理解了有符号整数的运算。计算下列表达式,其中W等于17,X等于28,Y等于- 29,Z等于- 13。
a)X + Y b)X + W c)Z + W d)Y + Z e)W - Z f)X - W g)Y - W h)Z - Y
-
使用十进制实数直线图验证下列运算的解决方法,其中A等于5,B等于- 7。
a)A + B b)A - B c)B + A d)B - A
-
将本章中提到过的十进制补码公式中的k为设为定长的数字6,回答下列问题。
a)可以表示多少正整数? b)可以表示多少负整数? c)绘制实数直线图,显示出三个最小的正数和三个最大的正数、三个最小的负数和三个最大的负数以及0。
-
使用练习36c中绘制的实数直线图,计算下列表达式,其中A等于- 499?999,B等于3。
a)A + B b)A - B c)B + A d)B - A
-
使用十进制补码的公式和3.2.1节中描述的模式,计算下列数字。
a)35?768 b)- 35?768 c)- 444?455 d)- 123?456
-
在计算练习38中的十进制补码时,是不是遇到很多从0借位的问题?这种计算易于出错。有种窍门可以使这种计算变得容易,而且不会出错,即让被减数中的每一位都是9,得到的结果再加1。如果被减数的每一位都是9,则得到的数字被称为数的九进制补码。
a)证明一个数的九进制补码加1等于这个数
的十进制补码。
b)用九进制补码加1的方法计算练习38b、c
和d中的值。
c)你认为哪种方法简单一些,是直接计算十
进制补码,还是用九进制补码加1?请给
出理由。
-
使用二进制补码计算下列表达式,其中A等于11111110,B等于00000010。
a)A + B b)A - B c)B - A d)- B e)- (- A)
- 一个数的二进制补码一定是负数吗?请解释。
-
设计一个以11为基数的记数系统。
a)绘制实数直线图。 b)展示一个加法示例和一个减法示例。 c)基于十一进制补码,设计一种负数的表示法。
- 用算法形式表示符号数值系统中的减法法则。
-
把下列实数转换成二进制的(5个二进制位)。
a)0.50 b)0.26 c)0.10
-
把下列实数转换成八进制的(5个八进制位)。
a)0.50 b)0.26 c)0.10
- 能够一眼看出八进制小数对应的二进制值或者看出二进制小数对应的八进制值吗?请解释。
- 表示包含45个字符的字符集需要多少位?为什么?
- 把十进制数175.23表示为符号、尾数和指数的形式。
- ASCII字符集和Unicode字符集间的主要区别是什么?
- 为几个简单单词创建一个关键字编码表。选择一个段落,用这种编码模式重写这一段。计算压缩率。
- 下列字符串的行程长度编码是什么?压缩率是多少?
AAAABBBCCCCCCCCDDDD hi there EEEEEEEEEFF - 行程长度编码X5A9表示什么字符串?
- 根据下列赫夫曼编码表,译解下列位串。
a)1101110001011 b)0110101010100101011111000 c)10100100101000010001000010100110110 d)10100010010101000100011101000100011
- 人是如何接收声音的?
- 立体声系统的扬声器是模拟设备还是数字设备?请解释。
- 什么是RGB值?
- 色深度指什么?
- 像素分辨率如何影响图像的视觉效果?
- 请解释时间视频压缩技术。
- 请描述一种空间视频压缩技术适用的情况。
- 请定义与数字化声波相关的采样。
- 高采样率制造的声音质量好还是低采样率制造的声音质量好?
- 要再现合理的声音,至少需要多大的采样率?
- 塑胶唱片和激光唱盘记录声音的方式一样吗?
- RGB值(130,0,255)是什么意思?
- RGB值(255,255,255)表示什么颜色?
- 什么是分辨率?
- GIF格式采用的是什么技术?
- GIF文件最适用于什么图像?
- 各种视频编译码器的相似之处是什么?
- 各种视频编译码器的不同之处又是什么?
- 请列出两种视频压缩类型。
- 我们对到达眼睛视网膜的各种频率的光的感觉叫作什么?
- 表示照片颜色图像的最佳格式是什么?
- 缩减电影大小的技术是什么?
- 使应用程序只支持某些特定颜色的技术是什么?
- 用线段和几何形状刻画图像的格式是什么?
- 什么格式逐个像素地存储信息?
- 增强彩色和真彩色之间的区别是什么?
思考题 - 使用常用(标准)字符集的优点是什么?缺点又是什么?
- 把整数从一种基数转换成另一种基数需要用新基数除这个数。把小数部分从一种基数转换成另一种基数则需要用新基数乘这个数。请用位置记数法解释这些算法。
- 技术在飞快地发展。自从本书面世后,数据压缩技术又发生了哪些变化呢?
- 这两套道德准则有什么区别吗?或者有什么类似之处?