1.3 数字信息的编码
1.3.1 几种常用的编码方法
1.ASCII码
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0)。例如,像a、b、A、B这样的52个大小写字母,以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,对于具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套规则(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则。
美国国家标准学会(American National Standard Institute, ANSI)于1967年制定的美国标准信息交换代码(American Standard Code for Information Interchange,简称ASCII码)是标准的单字节字符编码方案,用于基于文本的数据。ASCII码最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(International Organization for Standardization, ISO)定为国际标准(称为ISO 646标准),适用于所有拉丁文字字母。
ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母、数字0~9、标点符号,以及在美式英语中使用的特殊控制字符。其中:
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32是空格),其中48~57为0~9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
标准的ASCII字符代码表参见图1-8,同时还要注意,在标准ASCII中,其最高位(第8位,b7)用作奇偶校验位。
图1-8 标准ASCII字符代码表
注:该图取自网站DOSDIY.MYRICE.COM
后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或称“高位”)ASCII。扩展ASCII码允许将每个字符的第8位(b7)用于确定附加的128个特殊符号字符、外来语字母和图形符号。
ASCII码是一种典型的等长码。等长码编码方式的特点是每个字符的编码长度相同(编码长度就是每个编码所含的二进制位数)。假设字符集只含有4个字符A, B, C, D,用二进制两位表示的编码分别为00,01,10,11。若现在有一段电文为:ABACCDA,则应发送二进制序列:00010010101100,总长度为14位。当接收方接收到这段电文后,将按两位一段进行译码。这种编码的特点是译码简单且具有唯一性,但编码长度并不是最短的,因为其没有考虑字符出现的次数(出现的概率)。
下面介绍一种编码效率更高的可变字长编码——Huffman编码。可变字长码是指每个字符的编码长度不相同。
2.Hoffman编码
1951年,哈夫曼(David A. Huffman)和他在麻省理工学院学习信息论的同学需要选择是完成学期报告还是期末考试。导师Robert M.Fano给他们的学期报告的题目是,寻找最有效的二进制编码。由于无法证明哪个已有编码是最有效的,所以哈夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。1952年,Huffman在麻省理工攻读博士时发表了《一种构建极小多余编码的方法》(AMethod for the Construction of Minimum-Redundancy Codes)一文,后人把文中的编码方法称为Huffman编码。
Huffman编码是对统计独立信源达到最小平均码长的编码方法,又称为最小概率合并法。其基本原理:按信源符号出现的概率大小进行排序,出现概率大的分配短码,出现概率小的则分配长码。编码过程如下:
(1)将信源符号按概率递减顺序排列;
(2)把两个最小的概率加起来,作为新符号的概率;
(3)重复(1)和(2),直到概率和达到1为止;
(4)在每次合并消息时,将被合并的消息赋予1和0,或0和1;
(5)寻找从每一信源符号到概率为1的路径,记录路径上的1和0;
(6)对每一符号写出从码树的根到终结点1、0序列。
Huffman编码是一种无损压缩编码方法,特别适合符号出现概率差别大的信源编码,下面结合一个具体例子来理解。
例如,有一篇文章,只出现过共7个字符,每个字符出现的概率见表1-2,如果采用Huffman算法对这段文字进行编码,根据上述编码过程可以建立图1-9所示的Huffman树,并得出表1-3所列的编码结果。从表1-3中可知,出现概率最多的字符M1分配最短码字(“0”),只有1位;而出现概率最少的字符M5和M6分配其较长的码字(分别为“111110”和“111111”),有6位,但是因其在文章中仅出现1次,对总体的编码长度影响很小。
表1-2 文章中各字符出现的概率
图1-9 Hoffman树编码图
表1-3 Hoffman编码结果
我们再进一步假设,如果这篇文章总共只有100个字符。那么,按照Huff-man编码方法编码后,这篇文章的总编码长度B应该是多少呢?
在上例中,如果不考虑字符出现的概率,采用等长码编码,那这篇文章的总编码长度又是多少呢?因为有7位不同的字符,采用等长码编码方法(如自然二进制编码),每位字符至少需要3位二进制来编码(23>7)。编码结果如表1-4所示。
表1-4 采用自然二进制编码结果
因为每个字符的编码长度一样,为3位。所以这篇文章的总编码长度B为:
比较式(1.7)和式(1.8)的结果可知,采用Huffman编码对统计独立信源总体编码长度最小,即信源字符编码的平均码长最小。
1.3.2 数字信息的压缩
1.广播与电视信号数字化的代价
由前面式(1.6)可知,如果一套CD音质的立体声广播节目,A/D转换的采样频率为44.1KHz,每个采样值按16比特编码,则数据率为1411.2Kbps。另外,考虑到为了能够纠正传输差错,进行信道编码时人为加入一定的冗余,假设信道编码率R=1/2,则实际上在传输信道中传送的数据率为1411.2Kbps×2,如果频谱利用率按2bps/Hz计算,那么传送一套这样的立体声节目所需的频率带宽为:
这个带宽相当于现行约7个模拟调频广播电台所占用的有效带宽,这在实际上是不能被人们接受的。这就要求对模拟信号数字化后的数据进行压缩,将数据率降至原来的1/7左右,利用一个FM电台所占的频率带宽就可以传送一套CD音质的立体声节目。
我们再来看看一套PAL制式的模拟电视信号数字化后的数据传输率是多少?
PAL制式是国际上主流的模拟电视制式之一,其图像格式为:宽高比4∶3、每帧625行、每秒25帧,亮度信号和色度信号的数值范围都分256级。当亮度和色度都考虑256种不同状态时,每个像素需要8+8+8=24比特的序列(28=256,且每个像素由一个亮点信号和2个色度信号构成)。
根据图像的宽高比,可算出每行有625 × 4/3=833个像素,每帧图像有833×625=520625个像素。由于每秒传送25帧,因此可以算出数字信号的数据传送率为
如果传送高清晰度电视(HDTV),图像格式为16∶9,每帧为1250行,其他条件不变,可以算出数据率约为1.67Gbps。
通过上面的计算可以看出,广播电视信号数字化以后,有很高的数据率,存储时需要大容量的存储器,传输时需要占用很大的信道容量,需要很宽的传输带宽,甚至达到现实不能接受的程度。这就是模拟信号数字化需要付出的代价。因此,信源编码的任务主要是解决数据存储、交换、传输的有效性问题。即通过对信源数据率的压缩,力求用最少的数码传递最大的信息量。
在进行信源编码时,既希望最大限度地降低码率,又希望尽可能不要对节目质量造成损伤,以便受众感觉不出数据压缩的节目与原版节目的差别。二者是相矛盾的,只能根据不同节目的特点和不同的需要折中选择合适的压缩程度。
2.数据压缩的可能性
多媒体数据为什么可以被压缩?统计分析表明,多媒体信息都存在冗余信息。编码时降低信息中的冗余度,在解码时完全可以重建。
人们在对视频压缩编码计算时主要有以下几个客观依据:
(1)图像时间的相关性。一个节目中的一个情节常常由若干帧相似图像组成的图像序列构成,一个图像序列中前后帧图像间存在一定的关系,这种关系叫作时间相关性。找出相邻图像间的相关性可减少信息量。
(2)图像空间的相关性。一个像素通常与它周围的某些像素在亮度和色度上存在一定的关系,这种关系叫作空间相关性。例如,图像中有大块单一颜色,那么不必把所有像素存储。
(3)人眼的视觉特性。人眼对图像各处失真敏感度不同,对不敏感的无关紧要的信息给予较大的失真处理,即使这些信息全部丢失了,人眼也可能觉察不到。
(4)事件间的统计特性。事件发生的概率越小,则其熵值越大,表示信息量越大,需分配较长的码字;反之,发生的概率越大,则其熵值越小,只需分配较短的码字。
与视频压缩编解码类似,音频信号的压缩编码主要利用了人耳的听觉特性。
(1)听觉的掩蔽效应。掩蔽效应指人的听觉上,一个声音掩蔽了另一个声音的存在,它是一个较为复杂的心理和生理现象,包括人耳的频域掩蔽效应和时域掩蔽效应。
(2)人耳对声音的方向特性。对于2KHz以上的高频声音信号,人耳很难判断其方向性,因而立体声广播的高频部分不必重复存储。
3.数据压缩的分类
多媒体压缩技术分为无损压缩和有损压缩。
无损压缩又称无失真压缩,或冗余度压缩。在这种压缩方法中,利用数据的统计特性来进行数据压缩。在编码时去除重复的数据,在解码时根据压缩后的数据,可以完整地恢复原来的数据,无信息丢失。典型的编码有Huffman编码、算术编码等,这类压缩算法仅利用去除冗余进行信源编码,不能实现特别有效的压缩,一般压缩比低。
有损压缩又称失真压缩,或“不相关”压缩。这种压缩的特点是利用人的视觉特性使解压后的图像看起来与原始图像一样。压缩时丢掉信号中“不相关”部分,解码后不能如实地恢复原来的“不相关”部分,这种压缩是不可逆的。例如,预测编码、变换编码、模型编码及混合编码等,这类压缩算法一般压缩比高,但与原信息相比存在失真。
评价数字压缩技术优劣的三个重要指标:
① 信息存储量之比——越大越好;
② 压缩的算法——越简单越好;
③ 恢复效果——越逼真越好。
4.数据压缩标准
常用的多媒体压缩标准有:
1)JPEG
JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写,文件后缀名为“.jpg”或“.jpeg”。JPEG标准是适用于彩色和单色多灰度或连续色彩静止数字图像的压缩标准。
JPEG算法主要存储颜色变化,尤其是亮度变化,因为人眼对亮度变化要比对颜色变化更为敏感。只要压缩后重建的图像与原来图像在亮度变化、颜色变化上相似,在人眼看来就是同样的图像。其原理是不重建原始画面,而生成与原始画面类似的图像,丢掉那些未被注意到的颜色。JPEG适合应用于互联网,可·减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。
JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10∶1到40∶1之间。压缩比越大,品质就越低;相反,压缩比越小,品质就越好。需要在图像质量和文件大小之间找到平衡点。
2)MPEG
活动图像专家组(Moving Picture Expert Group, MPEG)负责开发电视图像数据和声音数据的编码、解码及它们的同步等标准,这个标准称为MPEG标准。到目前为止,已开发和正在开发的MPEG标准有MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21等。
(1)MPEG-1
MPEG-1是用于数字存储媒体运动图像及其伴音率为1.5Mbit/s的压缩编码。由于视频和音频需要同步,所以MPEG压缩算法应该对二者联合考虑,最后产生一个电视质量的视频和音频压缩形式的单一位流。
我们熟知的MP3,是一种音频压缩技术,其是MPEG-1压缩标准中的音频层面Layer III,简称为MP3。MP3是利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号),对低频信号使用小压缩比,保证信号不失真。这样一来就相当于抛弃人耳基本听不到的高频声音,只保留能听到的低频部分,从而将声音用1∶10甚至1∶12的压缩率压缩。MP3被设计用来大幅度地降低音频数据量,压缩成容量较小的文件,而对于大多数用户来说,重放的音质与最初的不压缩音频相比,没有明显的下降。
(2)MPEG-2
MPEG-2视频利用网络提供的更高的带宽(1.5Mbps以上)来支持具有更高分辨率图像压缩和更高的图像质量。MPEG-2在图像格式方面,可对标准清晰度电视、高清晰度、隔行扫描、顺序扫描等各种分辨率和信号形式的影像编码。MPEG-2音频与MPEG-1兼容,它们都使用相同种类的编码译码器。MPEG-2还支持线性Dolby AC-3(audio code number 3)编码。MPEG-2还定义了与MPEG-1音频格式不兼容的MPEG-2 AAC(Advanced Audio Coding,先进音频编码,俗称“音频MP4”),它是一种非常灵活的声音感知编码标准,支持的采样频率可从8KHz到96KHz,可支持48个主声道、16个配音声道和16个数据流。MPEG-2 AAC不但压缩率高,而且质量更高,重要的是,其实现了对数码版权的保护,这是MP3所无法比拟的。
MPEG-2视频编码标准是一个分等级的系列,按编码图像的分辨率分成4个“级(Levels)”;按所使用的编码工具的集合分成5个“类(Profiles)”。“级”与“类”的组合构成MPEG-2视频编码标准在某种特定应用下的子集,即对某一输入格式的图像,采用特定集合的压缩编码工具,产生规定速率范围内的编码码流。在20种可能的组合中,目前有11种是已获通过的,称为MPEG-2适用点。其中,MP@LL用于VCD、可视电话会议,MP@ML用于DVD、SDTV, MP@MH用于HDTV。
(3)MPEG-4
MPEG-4是一种针对低速率(<64kbps)下的视频、音频编码和交互播放开发的算法和工具,其显著特点是基于内容的编码,更加注重多媒体系统的交互性、互操作性、灵活性。MPEG-4标准是把一帧中的图像按内容分成块,将感兴趣的物体从场景中截取出来,然后对这些物体进行操作。MPEG-4不仅支持自然声音,而且支持合成声音。俗称的“视频MP4”就是用MPEG-4 part 14标准压缩的视频。
3)H.264
H.264是由ITU-T(International Telecommunication Union-Telecommun-i cation Standardization Sector,国际电信联盟远程通信标准化组)视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT, Joint Video Team)提出的高度压缩数字视频编解码器标准。ITU-T的H.264标准和ISO/IEC MPEG-4第10部分(正式名称是ISO/IEC 14496-10)在编解码技术上是相同的。因此,相同视频分别按这两种编码标准压缩后的码流大小差不多。这种编解码技术也被称为AVC,即高级视频编码(Advanced Video Coding)。该标准第一版的最终草案已于2003年5月完成。
H.264/AVC项目最初的目标是希望新的编解码器能够在比以前的视频标准(比如MPEG-2或者H.263)低很多的码率下(比如说低一半或者更多)提供很好的视频质量;同时,并不增加很多复杂的编码工具,而使硬件难以实现。另外一个目标是可适应性,该编解码器能够在一个很广的范围内使用(比如说,既包含高码率也包含低码率,以及不同的视频分辨率),并且能在各种网络和系统上(比如组播、DVD存储、RTP/IP包网络、ITU-T多媒体电话系统)工作。