第13章 错误检测和校正

第13章 错误检测和校正

  光盘、磁盘和磁带一类的数据记录媒体一样,由于盘的制作材料的性能、盘制造生产技术水平的限制、驱动器的性能以及使用不当等诸多原因,从盘上读出的数据不可能完全正确。据有关厂家的测试和统计,一片未使用过的只读光盘,某原始误码率约为3×10-4;沾有指纹的盘的误码率约为6×10-4;有伤痕的盘的误码率约为5×10-3。针对这种情况,激光盘存储器采用了功能强大的错误码检测和纠正措施。采用的具体对策归纳起来有三种:
  (1) 错误检测:采用CRC(Cyclic Redundancy Code)检测读出数据是否有错。
  (2) 错误校正码: 采用里德-索洛蒙码(Reed-Solomon Code),简称为RS码,进行纠错。RS码被认为是性能很好的纠错码。
  (3) 交叉交插里德-索洛蒙码CIRC(Cross Interleaved Reed-Solomon Code), 这个码的含义可理解为在用RS编译码前后,对数据进行交插处理和交叉处理。
  对这些码的理论分析和计算有许多专著作了详尽的深入论述,对不需要开发纠错技术的读者仅需要了解错误检测和校正的一些基本概念即可。

13.1 CRC错误检测原理

  在纠错编码代数中,把以二进制数字表示的一个数据系列看成一个多项式。例如,二进制数字序列10101111,用多项式可以表示成:
    M(x) = a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x1 + a0x0
       = x7 + x6 + x5 + x4 + x3 + x2 + x1 + 1
式中的xi表示代码的位置,或某个二进制数位的位置,xi前面的系数ai表示码的值。若ai是一位二进制代码,则取值是0或1。M(x)称为信息代码多项式。
  在模2多项式代数运算中定义的运算规则有:
    1xi + 1xi = 0
    -1xi = 1xi
  例如,模2多项式的加法和减法:
    
  从这两个例子中可以看到,对于模2运算来说,代码多项式的加法和减法运算所得的结果相同。所以在做代码多项式的减法时,可用做加法来代替做减法。
  代码多项式的除法可按长除法做。例如:
    

  如果一个k位的二进制信息代码多项式为 M(x),再增加(n-k)位的校验码,那么增加(n-k)位之后,信息代码多项式在新的数据块中就表示成 xn-kM(x) ,如图13-01所示。


图13-01 信息代码结构

如果用一个校验码生成多项式 G(x) 去除代码多项式 xn-kM(x),得到的商假定为 Q(x) ,余式为 R(x) ,则可写成
   
   xn-kM(x) = Q(x)G(x) + R(x)
  因为模2多项式的加法和减法运算结果相同,所以又可把上式写成:
   xn-kM(x) + R(x) = Q(x)G(x)
 G(x) 称为校验码生成多项式。从该式中可以看到,代表新的代码多项式 xn-kM(x) + R(x) 是能够被校验码生成多项式 G(x) 除尽的,即它的余项为0。
  例如,CD盘中的q通道和软磁盘存储器中使用的CRC校验码生成多项式是
   G(x) = x16 + x12 + x5 + 1
  若用二进制表示,则为
   G(x) = 100010000000100001(B) = 11021(H)
  假定要写到盘上的信息代码 M(x) 为
   M(x) = 4D6F746F (H)
  由于增加了2个字节共16位的校验码,所以信息代码变成 x16M(x): 4D6F746F0000(H)。 CRC检验码计算如下:

  两数相除的结果,其商可不必关心,其余数为B994(H)就是CRC校验码。把信息代码写到盘上时,将原来的信息代码和CRC码一起写到盘上。在这个例子中,写到盘上的信息代码和CRC码是4D6F746FB994,

4D6F746F

 

B994

信息代码

CRC码

  这个码是能被11021(H)除尽的。
  从盘上把这块数据读出时,用同样的CRC码生成多项式去除这块数据,相除后得到的两种可能结果是:  ①余数为0,表示读出没有出现错误;
  ②余数不为0,表示读出有错。
  CD-ROM中也采用了相同的CRC检错。CD-ROM扇区方式01中,有一个4字节共32位的EDC字域,它就是用来存放CRC码。不过,CD-ROM采用的CRC校验码生成多项式与软磁盘采用的生成多项式不同,它是一个32阶的多项式,
   P(x) = (x16 + x15 + x2 + 1)(x16 + x2 + x + 1) 
  计算CRC码时用的数据块是从扇区的开头到用户数据区结束为止的数据字节,即字节0~2063共2064个字节。在EDC中存放的CRC码的次序如下:

EDC:

x24-x31

x16-x23

x8-x15

x0-x7

字节号:

2064

2065

2066

2067

13.2 RS编码和纠错算法

13.2.1. GF(2m)域

  RS(Reed-Solomon)码在伽罗华域(Galois Field,GF)中运算的,因此在介绍RS码之前先简要介绍一下伽罗华域。
   CD-ROM中的数据、地址、校验码等都可以看成是属于GF(2m) = GF(28)中的元素或称符号。GF(28)表示域中有256个元素,除0,1之外的254个元素由本原多项式P(x)生成。本原多项式P(x)的特性是,得到的余式等于0。CD-ROM用来构造GF(28) 域的P(x)是
    P(x) = x8 + x4 +x3 + x2 + 1 (13-1)
   而GF(28)域中的本原元素为
    α = (0 0 0 0 0 0 1 0)
   下面以一个较简单例子说明域的构造。
   [例13.1] 构造GF(23)域的本原多项式P(x)假定为
    P(x) = x3 + x + 1
    α定义为P(x) = 0的根,即
    α3+α+1 = 0
    和 α3 = α+1
   GF(23)中的元素可计算如下:

0

 mod(α3+α+1) = 0

α0

 mod(α3+α+1) = α0 = 1

α1

 mod(α3+α+1) = α1

α2

 mod(α3+α+1) = α2

α3

 mod(α3+α+1) = α+1

α4

 mod(α3+α+1) = α2+α

α5

 mod(α3+α+1) = α2+α1+1

α6

 mod(α3+α+1) = α2+1

α7

 mod(α3+α+1) = α0

α8

 mod(α3+α+1) = α1

……

 

  用二进制数表示域元素得到表13-01所示的对照表

表13-01 GF(23)域中与二进制代码对照表,P(x) =  

GF(23)域元素

二进制对代码

0

(000)

α0

(001)

α1

(010)

α2

(100)

α3

(011)

α4

(110)

α5

(111)

α6

(101)

  这样一来就建立了GF(23)域中的元素与3位二进制数之间的一一对应关系。用同样的方法可建立GF(28)域中的256个元素与8位二进制数之间的一一对应关系。在纠错编码运算过程中,加、减、乘和除的运算是在伽罗华域中进行。现仍以GF(23)域中运算为例:
   加法例:α0+α3 = 001+011 = 010 = α1
   减法例:与加法相同
   乘法例:α5·α4 = α(5+4) mod7 = α2
   除法例:α53 = α2
       α35 = α-2 = α(-2+7) = α5
   取对数:log(α5) = 5
   这些运算的结果仍然在GF(23)域中。

13.2.2 RS的编码算法

  RS的编码就是计算信息码符多项式M(x)除以校验码生成多项式之后的余数。
  在介绍之前需要说明一些符号。在GF(2m)域中,符号(n,k)RS的含义如下:
  m      表示符号的大小,如m = 8表示符号由8位二进制数组成
  n      表示码块长度
  k      表示码块中的信息长度
  K=n-k = 2t 表示校验码的符号数
  t      表示能够纠正的错误数目

  例如,(28,24)RS码表示码块长度共28个符号,其中信息代码的长度为24,检验码有4个检验符号。在这个由28个符号组成的码块中,可以纠正在这个码块中出现的2个分散的或者2个连续的符号错误,但不能纠正3个或者3个以上的符号错误。
  对一个信息码符多项式M(x),RS校验码生成多项式的一般形式为
    (13-2)
式中,m0是偏移量,通常取K0 = 0或K0= 1,而(n-k)≥2t (t为要校正的错误符号数)。
  下面用两个例子来说明RS码的编码原理。
  [例13.2] 设在GF(23)域中的元素对应表如表13-01所示。假设(6,4)RS码中的4个信息符号为,信息码符多项式M(x)为
   M(x) = m3x3 + m2x+ m1x + m0 (13-3)
  并假设RS校验码的2个符号为Q1和Q0的剩余多项式R(x)为
   R(x) = Q1(x) + Q0
  这个多项式的阶次比G(x)的阶次少一阶。
  如果K0 = 1,t = 1,由式(13-2)导出的RS校验码生成多项式就为
    = (x-α)(x-α2) (13-4)
  根据多项式的运算,由式(13-3)和式(13-4)可以得到
   m3x5+m2x4+m1x3+m0x2+Q1x+Q0 = (x-α)(x-α2)Q(x)
  当用x = α和x = α2代入上式时,得到下面的方程组,
   
  经过整理可以得到用矩阵表示的(6,4)RS码的校验方程:
   
  求解方程组就可得到校验符号:
   
  在读出时的校正子可按下式计算:
   
  [例13.3] 在例13.2中,如果K0 = 0,t = 1,由式(13-2)导出的RS校验码生成多项式就为
    = (x-α0)(x-α1) (13-5)
  根据多项式的运算,由(13-3)和(13-5)可以得到下面的方程组:
   
  方程中的αi也可看成符号的位置,此处i = 0,1,…,5。
  求解方程组可以得到RS校验码的2个符号为Q1和Q0
    (13-6)
  假定mi为下列值:

 信息符号

 m3 = α0 = 001
 m2 = α6 = 101
 m1 = α3 = 011
 m0 = α2 = 100

 校验符号

 Q1 = α6 = 101
 Q0 = α4 = 110

 校正子

 s0 = 0
 s1 = 0

  代入(13-6)式可求得校验符号:
  Q1 = α6 = 101
  Q0 = α4 = 110

13.2.3 RS码的纠错算法

  RS码的错误纠正过程分三步: (1)计算校正子(syndrome),(2)计算错误位置,(3)计算错误值。现以例13.3为例介绍RS码的纠错算法。
  校正子使用下面的方程组来计算:
   
  为简单起见,假定存入光盘的信息符号m3、m2、m1、m0和由此产生的检验符号Q1、Q0均为0,读出的符号为m3′、m2′、m1′、m0′、Q1′和Q0′。
  如果计算得到的s0和s1不全为0,则说明有差错,但不知道有多少个错,也不知道错在什么位置和错误值。如果只有一个错误,则问题比较简单。假设错误的位置为αx,错误值为mx,那么可通过求解下面的方程组:
  
  得知错误的位置和错误值。
  如果计算得到s0 = α2和s1 = α5,可求得αx= α3和mx = α2,说明m1出了错,它的错误值是α2。校正后的m1= m1′+mx ,本例中m1=0。
  如果计算得到s0 = 0,而s1≠0,那基本可断定至少有两个错误,当然出现两个以上的错误不一定都是s0 = 0和s1≠0。如果出现两个错误,而又能设法找到出错的位置,那么这两个错误也可以纠正。如已知两个错误mx1和mx2的位置αx1和αx2,那么求解方程组:
   
  就可知道这两个错误值。
  CD-ROM中的错误校正编码CIRC和里德-索洛蒙乘积码(Reed Solomon Product-like Code,RSPC)就是采用上述方法导出的。

13.3 CIRC纠错技术

  光盘存储器和其它的存储器一样,经常遇到的错误有两种。一种是由于随机干扰造成的错误,这种错误称随机错误。它的特点是随机的、孤立的,干扰过后再读一次光盘,错误就可能消失。另一种错误是连续多位出错,或连续多个符号出错,如盘片的划伤、沾污或盘本身的缺陷都可能出现这种错误,一错就错一大片。这种错误称为突发错误。CIRC(Cross Interleaved Reed Solomon)纠错码综合了交插、延时交插、交叉交插等技术,不仅能纠随机错误,而且对纠突发错误特别有效。

13.3.1 交插技术

  对纠错来说,分散的错误比较容易得到纠正,但出现一长串的错误时,就较麻烦。正如我们读书看报,如果文中在个别地方出错,根据前后文就容易判断是什么错。如果连续错好多字,就很难判断该处写的是什么。
  例如,用X表示出现的错字,一种错误形式为“独在异乡XXX,每逢佳节倍思亲”,这是连续出现的错误,另一种错误形式为“独在异乡X异客,每X佳节倍思X”,这是分散出现的错误。这两种错误形式相比,同样是3个错误,但人们更容易更正后一种形式的错误,更正之后为“独在异乡为异客,每逢佳节倍思亲”。
  这个道理很简单,把这种思想用在数字记录系统中对突发错误的更正非常有效。在光盘上记录数据时,如果把本该连续存放的数据错开放,那么当出现一片错误时,这些错误就分散到各处,错误就容易得到纠正,这种技术就称为交插(interleaving)技术。例如,
  3个(5,3)码块: B1 = (a2,a1,a0,P1,P0)
          B2 = (b2,b1,b0,Q1,Q0)
          B3 = (c2,c1,c0,R1,R0)

连续排列:

a2 a1 a0 P1P0

b2 b1 b0 Q1Q0

c2 c1 c0 R1R0

  排成3行:
   a2 a1 a0 P1 P0
   b2 b1 b0 Q1 Q0
   c2 c1 c0 R1 R0

 交插排列:

a2

b2

c2

a1

b1

c1

a0

b0

c0

P1

Q1

R1

P0

Q0

R0

 连续错3个:

a2

b2

c2

a1

b1

c1

a0

X

X

X

Q1

R1

P0

Q0

R0

 读出后重新排列:

a2

a1

a0

X

P0

b2

b1

X

Q1

Q0

c2

c1

X

R1

R0

  从这个例子中可以看到,对连续排列,每个码块中只能出现一个错误才能纠正。而交插记录后,读出的3个连续错误经还原后可把它们分散到3个码块中,每个码块可以纠正1个错误,总计可以纠正3个连续的错误。
  一般来说,如果有r个(n,k)码,排成r×n矩阵,按列交插后存储或传送,读出或接收时恢复成原来的排列,若(n,k)码能纠正t个错误,那么这样交插后就可以纠正rt个突发错误。

13.3.2 交叉交插技术

  交叉交插(cross-interleaving)编码是交插的一种变型。在实际应用中,也是一种重要的技术。现仍以简单的例子说明这种技术思想。
  (1) 用(5,3)码编码器C2生成的4个码块为:
   B1=(a2 a1 a0 P1 P0)
   B2=(b2 b1 b0 Q1 Q0)
   B3=(c2 c1 c0 R1 R0)
   B4=(d2 d1 d0 S1 S0)
  (2) 交插后再用(6,4)码编码器C1生成5个码块为:
   a2 b2 c2 d2 T1 T0
   a1 b1 c1 d1 U1 U0
   a0 b0 c0 d0 V1 V0
   P1 Q1 R1 S1 W1 W0
   P0 Q0 R0 S0 X1 X0
  (3) 再交插,交插的码块数可以是2、3、4或5。以交插2个码块为例:
   a2 a1 b2 b1 c2 c1 d2 d1 T1 U1 T0 U0 a0 P1 b0 Q1 c0 R1 d0 S1
  (4) 最后一个码块不配对,可以和下一个码块配对。
  这种编码技术用了两个编码器C2和C1。C2对原码块进行编码得到(5,3)码块,交插后生成由4个符号组成的码块,码块中的符号是交叉存放的,然后再用(6,4)编码器C1去编码。
  有关CIRC详细的实现方法请参看文献[7]。
  CIRC首先应用在激光唱盘系统中。音频信号的采样率为44.1 kHz,而每次采样有两个16比特的样本,一个来自左声道,一个来自右声道,每个样本用两个GF(28)域中的符号表示,因此每次采样共有4个符号。
  为了纠正可能出现的错误,每6次采样共24个符号构成1帧,称为F1帧(F1-Frame)。用一个称为C2的编码器对这24个符号产生4个Q校验符号: Q0,Q1,Q2和Q3。24个声音数据加上4个Q校验符号共28个符号,用称为C1编码器对这28个符号产生4个P校验符号: P0,P1,P2和P3。28个符号加上4个P校验符号共32个符号构成的帧称为F2帧(F2-Frame)。F2帧加上1个字节(即1个符号)的子码共33个符号构成的帧称为F3帧(F3-Frame)。
  在实际应用中可对前面介绍的交插技术略加修改,执行交插时不是交插包含有k个校验符的码块,而是交插一个连续系列中的码符,这种交插技术称为延时交插。延时交插之后还可用交叉技术,称为延时交叉交插技术。CD存储器中的CIRC编码器采用了4×F1帧的延时交插方案。1帧延时交插可纠正连续4×F1帧的突发错误。4×F2帧的延时交插可纠正连续16×F1帧突发错误,相当于大约14×F3帧的突发错误。1×F3帧经过EFM编码后产生588位通道位。1位通道位的长度折合成0.277μm的光道长度。14×F3帧突发错误长度相当于
  [(16×(24+4))/33]×588×0.277≈2.2 mm
换句话说,CIRC能纠正在2.2 mm光道上连续存放的448个错误符号!相当于连续224个汉字错误可以得到纠正。

13.4 RSPC码

  按ISO/IEC10149的规定,CD-ROM扇区中的ECC码采用GF(28)域上的RSPC码产生172个字节的P校验符号和104个字节的Q校验符号。RS码采用本原多项式
   P(x) = x8 + x4 +x3 + x2 + 1
和本原元
   α = (00000010)
构造GF(28)域,这已经在上节作了介绍。
  第12章已经介绍了CD-ROM的扇区结构。在每个扇区中,字节12~2075和ECC域中的字节2076到2351共2340个字节组成1170个字(word)。每个字s(n)由两个字节B组成,一个称为最高有效位字节MSB,另一个叫做最低有效位字节LSB。第n个字由下面的字节组成,
  s(n) = MSB[B(2n + 13)] + LSB[B(2n + 12)]
其中n = 0,1,2,…,1169。
  从字节12开始到字节2075共2064个字节组成的数据块排列成24×43的矩阵,如图13-02所示。

 


       

NP

  
  

0

1

2

3

   

41

42

 

 

0

000

0001

0002

0041

0042

 
 
 

P

     

Q

     

用户数据

 

                 

MP

22

0946

0947

0948

0987

0988

部分辅助数据

 

23

0989

0990

0991

1030

1031

   

24

1032

1033

1034

     

1073

1074

P-校验

 

25

1075

1076

1077

1116

1117

   

26

1118

1119

1120

1143

     

Q-校验

 

27

1144

1145

1146

1169

           

0

1

2

25

     

(ISO /IEC1049)

 

1

0043

0044

0045

0084

0085

HEADER

 

2

0086

0087

0088

0127

0128

+

图13-02 RSPC码计算用数据阵列

  矩阵中的元素是字。这个矩阵要把它想象成两个独立的矩阵才比较好理解和分析,一个是由MSB字节组成的24×43矩阵,另一个是由LSB字节组成的24×43矩阵。
  (1) P校验符号用(26,24)RS码产生
  43列的每一列用矢量表示,记为Vp。每列有24个字节的数据再加2个字节的P校验字节,用下式表示:
   
其中:
   Np =  0,1,2,……,42
   Mp =  0,1,2,……,25
   s(43*24+Np)和s(43*25+Np)是P校验字节
  对这列字节计算得到的是两个P校验字节,称为P校验符号。两个P校验字节加到24行和25行的对应列上,这样构成了一个26×43的矩阵,并且满足方程
   Hp × Vp = 0
  其中HP校验矩阵为
   
  (2) Q校验符号用(45,43)RS码产生
  增加P校验字节之后得到了一个26×43矩阵,该矩阵的对角线元素重新排列后得到一个新的矩阵,其结构如图13-03所示。

(ISO/IEC 10149∶1989)
图13-03 Q校验符号计算用数据阵列

  每条对角线上的43个MSB字节和LSB字节组成的矢量记为VQ。VQ在26×43矩阵中变成行矢量。第NQ行上的VQ矢量包含的字节如下:
    
其中:
   NQ = 0,1,2,…,25
   MQ = 0,1,2,…,42
  s(43*26+Nq)和s(44*25+Nq )和是Q校验字节
  VQ中的(44*MQ+43*NQ)字节号运算结果要做mod(1118)运算。用(45,43)RS码产生的两个Q校验字节放到对应VQ矢量的末端,并且满足下面的方程:
   HQ × VQ = 0
其中HQ校验矩阵为
   
  (26,24)RS码和(45,43)RS码可以纠正出现在任何一行和任何一列上的一个错误,并且能相当可靠地检测出行、列中的多重错误。如果在一个阵列中出现多重错误,Reference Technology公司提供有一种名叫Layered ECC的算法,它可以取消多重错误。它的核心思想是交替执行行纠错和列纠错。
  例如,假设错误分布如图13-04所示。ECC算法首先计算MSB矩阵和LSB矩阵中每一行的校正子Sri(i = 0,1,…,25),以及每一列的校正子Scj(j = 0,1,…,44)。因为用(45,43)RS码,所以每一个Sri和每一个Scj都有两个校正子分量。如果Sri = 0,则说明第i行无错;如Scj = 0,说明第j行无错。


图13-04 错码分布举例

  ECC算法首先纠正行1、3、17、19和22上分别只有一个的错误。这些错误取消后就纠正列5、9、15和35上分别只有一个的错误。经过一次行列交替纠错后,只剩下C4,25、C7,20、C7,25和C9,20这四个错误。再进行一次行列交替纠错后,就可以消除全部错误。
  对于象下面这样分布的错误,ECC算法也可以纠正。
   
  因为RS码纠错算法本身包含找错误的位置和错误值,而错误位置已经由校正子Sr(i-k)、Sri、Sr(i+m)和Scj、Sc(j+l)确定,所以只剩下求错误值的问题。这个问题在讨论RS码时已经解决。
  对CD-ROM存储器的数据,经CIRC校正后可以使以字节做单位的误码率小于10-9,再经RSPC进行纠错后,字节误码率可以小于10-13,这样就满足了计算机要求误码率小于10-12的要求。

练习与思考题

  1. CRC用于检测错误还是校正错误?
  2. 用自己的语言说明错误检测的思想。
  3. 什么叫做突发错误?
  4. 码块长度为n,码块中的信息长度为k,问(n,k)RS码本身能纠正多少个错误?
  5. 要纠正1个符号的错误,至少需要附加多少个校验符?
  6. 目前CD存储器中使用的CIRC编码技术能够纠正突发错误的最大长度是多少(按汉字字符数估算)?
参考文献和站点
  • ISO/IEC 908. Compact Disc Digital Audio System. 1987.
  • ISO 9660. Volume and File structure of CD-ROM for Information Interchange. 1988.
  • ISO/IEC 10149. Data Interchange on Read Only 120 mm Optical Data Disks(CD-ROM). 1989
  • Scott A.Vanstone and Paul C. van Oorcshot. An Introducton Error Correcting Codes with Application. Kluwer, Academic Publishers, 1989
  • Philips and Sony. System Description CD-ROM XA Compact Disk Read Only Memory extended Architecture. May, 1991
  • Philips and Sony Corporation. CD-I Full Functional Specification. 1993.
  • 林福宗, 陆 达. 多媒体与CD-ROM. 北京:清华大学出版社, 1995.3.

 

        

MQ

  

 

0

0000

0044

0088

0642

0686

0730

1118

1144

 
 

1

0043

0087

0131

0685

0729

0773

1119

1145

 

2

0086

0130

0147

0728

0772

0816

1120

1146

 

3

0129

0137

0217

0771

0815

0859

1121

1147

 

4

0172

0216

0260

0814

0858

0902

1122

1148

            
 

22

0946

0990

1034

0470

0514

0558

1140

1166

NQ

23

0989

1033

1077

0513

0557

0601

1141

1167

 

24

1032

1076

0002

0556

0600

0644

1142

1168

 

25

1075

0001

0045

0599

0643

0687

1143

1169

  

0

1

2

  

40

41

42

Q0

Q1

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多媒体技术及应用 — 课程学习 第1 多媒体技术概要   1.1 多媒体是交互式信息传播媒体   1.2 多媒体涉及的几个概念    1.2.1 超文本的概念    1.2.2 超媒体的概念    1.2.3 标准通用标记语言 (SGML)    1.2.4 超文本标记语言(HTML)    1.2.5 虚拟现实造型语言(VRML)   1.3 多媒体与网络   1.4 多媒体与光盘存储器   1.5 多媒体的技术研究与应用开发   练习与思考题 第2 数字声音及MIDI简介   2.1. 声音与听觉器官   2.2 声音信号数字化    2.2.1 从模拟过渡到数字    2.2.2 模拟信号与数字信号    2.2.3 声音信号数字化    2.2.4 采样频率    2.2.5 采样精度    2.2.6 声音质量与数据率   2.3 声音文件的存储格式   2.4 声音工具   2.5 声音质量的度量   2.6 电子乐器数字接口(MIDI)系统    2.6.1 MIDI简介    2.6.2 FM合成声音    2.6.3 乐音样本合成声音    2.6.4 MIDI 系统    2.6.5 MIDI消息    2.6.6 MIDI音序器和标准MIDI文件    2.6.7 合成器的多音调和多音色    2.6.8 通用MIDI(GM)    附录1:通用MIDI(GM)配音映射表    附录2:通用MIDI(GM)打击乐音表   练习与思考题   参考文献和站点 第3 话音编码   3.1 话音编码概要   3.2 脉冲编码调制(PCM)   3.3 PCM在通信中的应用   3.4 增量调制与自适应增量调制   3.5 自适应差分脉冲编码调制   3.6 G.722 SB-ADPCM编译码器   3.7 线性预测编码(LPC)的概念   3.8 GSM编译码器简介   练习与思考题   参考文献和站点 第4 无损数据压缩   4.1 仙农-范诺与霍夫曼编码   4.2 算术编码   4.3 RLE编码   4.4 词典编码   练习与思考题   参考文献和站点 第5 彩色数字图像基础   5.1 视角系统对颜色的感知   5.2 图像的颜色模型   5.3 彩色空间的线性变换标准   5.4 图像的三个基本属性   5.5 图像的种类   5.6 伽马(g )校正   5.7 JPEG压缩编码   练习与思考题   参考文献和站点 第6 图像文件格式   6.1 BMP文件格式   6.2 GIF文件格式   6.3 JPEG格式   6.4 PNG格式   6.5 图像文件后缀一览表   练习与思考题   参考文献和站点 第7 彩色数字电视基础   7.1 彩色电视制式   7.2 彩色电视信号的类型   7.3 电视图像数字化   7.4 图像子采样   练习与思考题   参考文献和站点 第8 MPEG简介   8.1 MPEG是什么   8.2 MPEG-1数字电视标准   8.3 MPEG-2数字电视标准   8.4 MPEG-4多媒体应用标准   8.5 MPEG-7多媒体内容描述接口   练习与思考题   参考文献和站点 第9 MPEG声音   9.1 听觉系统的感知特性   9.2 MPEG Audio与感知特性   9.3 MPEG-1 Audio   9.4 MPEG-2 Audio   9.5 MPEG-2 AAC   9.6 MPEG-4 Audio   练习与思考题   参考文献和站点 第10 MPEG电视   10.1 电视图像的数据率   10.2 数据压缩算法   10.3 MPEG-2的配置和等级   10.4 MPEG-4电视图像编码   10.5 HDTV格式   练习与思考题   参考文献和站点 第11 只读光盘存储器   11.1 CD简历   11.2 CD的工作原理   11.3 CD-Audio   11.4 DVD简介   11.5 DVD的规格   11.6 DVD的存储容量是怎样提高的   11.7 VCD与DVD播放机的结构   练习与思考题   参考文献和站点 第12 光盘存储器的格式   12.1 CD盘上的物理格式   12.2 CD-ROM的逻辑格式(ISO 9660)   12.3 VCD标准   练习与思考题   参考文献和站点 第13 错误检测校正   13.1 CRC错误检测原理   13.2 RS编码和纠错算法   13.3 CIRC纠错技术   13.4 RSPC码   练习与思考题   参考文献和站点 第14 多媒体网络应用及交换技术   14.1.1 应用举例   14.2 因特网上存取声音和电视的方法   14.3 网络上的信息交换技术   练习与思考题   参考文献和站点 第15 Internet与TCP/IP   15.1 因特网   15.2 TCP/IP的参考模型   15.3 网络应用层协议   15.4 网络传输层协议   15.5 网络层上的网际协议   练习与思考题   参考文献和站点 第16 网际多目标广播简介   16.1 多目标广播的概念   16.2 多目标广播所需要的环境   16.3 多目标广播树的概念   16.4 IP多目标广播的地址和主机组的管理   16.5 多目标广播路径选择简介   16.6 实时传输协议和实时控制协议   16.7 资源保留协议   练习与思考题   参考文献和站点 第17 多媒体通信系统技术   17.1多媒体通信系统概要   17.2 H.323电视会议   17.3 H.324可视电话   17.4 IP电话   练习与思考题   参考文献和站点 第18 超文本标记链接语言(HTML)   18.1 HTML文档   18.2 HTML标签和属性   18.3 字符样式   18.4 超链接   18.5 表格标签和属性   练习与思考题   参考文献和站点 第19 使用JavaScript   19.1 简介   19.2 事件与函数   19.3 层次结构   19.4 帧窗   9.5 创建新窗口与建立新文档   19.6 状态栏和超时设置   19.7 预定义对象   19.8 确认输入   19.9 JavaScript动画   19.10 层对象   19.11 层叠样式和JavaScript样式
分成两个分卷进行压缩 《Ubuntu权威指南》目录 目  录 第1 系统概述与安装 1 1.1 Linux的兴起与发展 2 1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面环境 20 2.2 GNOME桌面环境浏览 21 2.2.1 GNOME菜单面板 21 2.2.2 GNOME桌面区 24 2.2.3 GNOME窗口面板 26 2.3 应用程序菜单 27 2.3.1 办公 28 2.3.2 附件 29 2.3.3 互联网 31 2.3.4 图形 33 2.3.5 影音 34 2.3.6 游戏 36 2.3.7 添加/删除软件 36 2.4 位置菜单 36 2.4.1 主文件夹 38 2.4.2 桌面、文档等 39 2.4.3 计算机 39 2.4.4 CD/DVD刻录机 39 2.4.5 磁盘分区 40 2.4.6 网络 40 2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动存储介质 53 2.7 定制GNOME桌面环境 54 2.7.1 定制面板 54 2.7.2 定制桌面背景 54 2.7.3 定制菜单面板 55 第3 命令行基础知识 56 3.1 命令行结构 57 3.2 后台进程 60 3.3 标准输入/标准输出与标准错误 ?输出 61 3.4 输入/输出重定向 61 3.5 管道 65 3.6 元字符与文件名生成 67 3.7 转义与引用 69 3.8 命令历史 72 3.8.1 fc命令 72 3.8.2 history命令 74 3.8.3 重复执行先前的命令 75 3.8.4 编辑并执行校正后的命令 76 3.8.5 命令行补充 77 3.9 命令别名 79 3.10 作业控制 81 3.11 会话记录与命令确认 83 3.11.1 保存会话记录 83 3.11.2 确保使用的命令是 ??正确的 84 第4 文件系统基础知识 86 4.1 文件系统的层次结构 87 4.1.1 树形层次结构 87 4.1.2 路径名 88 4.2 文件系统的组织结构 88 4.3 文件的类型 92 4.3.1 普通文件 92 4.3.2 目录文件 94 4.3.3 特殊文件 95 4.3.4 链接文件 98 4.3.5 符号链接文件 99 4.3.6 管道文件 101 4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4 递归地列出文件 112 5.3 显示文件内容 113 5.3.1 使用cat命令显示文件 113 5.3.2 使用more命令分页显示 文件 113 5.3.3 使用less命令分页显示 文件 114 5.3.4 使用head命令显示文件 前几行内容 115 5.3.5 使用tail命令显示文件 最后几行内容 116 5.4 复制文件 116 5.5 移动文件 117 5.6 删除文件 118 5.7 显示当前工作目录 119 5.8 改换目录 119 5.9 创建目录 121 5.10 移动目录 121 5.11 复制目录 121 5.12 删除目录 122 5.13 比较文件之间的差别 123 5.13.1 使用diff命令比较两个 ??文件 123 5.13.2 使用diff3命令比较3个 ??文件 123 5.14 从系统中检索文件 124 5.14.1 简单检索 126 5.14.2 使用逻辑运算符 126 5.14.3 利用find命令本身实现 ??其他处理功能 126 5.14.4 利用管道实现其他 ??处理功能 127 5.15 检索文件内容 127 5.15.1 利用grep检索文件 ??内容 127 5.15.2 过滤其他命令的输出 ??数据 128 5.15.3 使用grep检索多个文件 128 5.15.4 检索不包含特定字符 ??串的文本行 129 5.15.5 在grep中使用正则 ??表达式 129 5.15.6 检索元字符本身 131 5.15.7 在命令行中使用引号 131 5.16 排序 132 第6 编辑文件 133 6.1 启动vim编辑器 134 6.1.1 创建文件 134 6.1.2 状态行 135 6.2 vim编辑器的两种工作模式 135 6.2.1 输入模式 135 6.2.2 命令模式 135 6.3 保存编辑的文件并退出vim 136 6.4 vim编辑器的基本命令 137 6.4.1 移动光标位置 137 6.4.2 输入文本 138 6.4.3 修改与替换文本 138 6.4.4 撤销先前的修改 139 6.4.5 删除文本 139 6.4.6 复制、删除与粘贴文本 140 6.4.7 按指定的数量重复执行 命令 141 6.5 使用ex命令 141 6.5.1 显示行号 141 6.5.2 多行复制 142 6.5.3 移动文本行 142 6.5.4 删除文本行 142 6.6 检索与替换 142 6.6.1 检索字符串 142 6.6.2 模式检索 143 6.6.3 替换字符串 144 6.7 编辑多个文件 145 6.7.1 编辑多个文件 145 6.7.2 合并文件与合并文本行 145 6.8 定制vim编辑器的运行环境 145 6.8.1 临时设定vim的运行 环境 145 6.8.2 永久性地定制vim的 运行环境 148 6.9 其他特殊说明 148 6.9.1 删除或替换特殊字符 148 6.9.2 在编辑期间运行Linux 命令 149 6.10 vim编辑器命令总结 149 第7 Shell基础知识 153 7.1 引言 154 7.1.1 为什么需要Shell编程 154 7.1.2 什么是Shell脚本 155 7.1.3 运行Shell脚本 155 7.1.4 退出与出口状态 156 7.1.5 调用适当的Shell解释 程序 158 7.1.6 位置参数 159 7.2 变量与变量替换 161 7.2.1 变量分类 162 7.2.2 变量的赋 162 7.2.3 内部变量 163 7.2.4 变量的引用与替换 165 7.2.5 变量的间接引用 167 7.2.6 特殊的变量替换 167 7.2.7 变量声明与类型定义 170 7.3 命令与命令替换 171 7.3.1 Shell内部命令 171 7.3.2 部分命令介绍 174 7.3.3 命令替换 183 7.4 test语句 185 7.4.1 文件测试运算符 186 7.4.2 字符串测试运算符 187 7.4.3 整数测试运算符 188 7.4.4 逻辑运算符 189 7.5 命令行的解释执行过程 190 7.5.1 读取命令行 191 7.5.2 命令历史替换 191 7.5.3 别名替换 192 7.5.4 花括号扩展 192 7.5.5 波浪号替换 192 7.5.6 I/O重定向 193 7.5.7 变量替换 194 7.5.8 算术运算结果替换 195 7.5.9 命令替换 195 7.5.10 单词解析 195 7.5.11 文件名生成 196 7.5.12 引用字符处理 197 7.5.13 进程替换 197 7.5.14 环境处理 198 7.5.15 执行命令 198 7.5.16 跟踪执行过程 199 第8 Shell高级编程 200 8.1 if条件语句 201 8.1.1 if语句的表现形式 201 8.1.2 嵌套的if-then 条件测试 202 8.1.3 if-then结构参考 204 8.2 case分支语句 205 8.3 for循环语句 207 8.4 while循环语句 210 8.5 until循环语句 212 8.6 select循环语句 213 8.7 嵌套的循环 214 8.8 循环控制与辅助编程命令 215 8.8.1 break和continue命令 215 8.8.2 true命令 217 8.8.3 sleep命令 217 8.8.4 shift命令 217 8.8.5 getopt命令 218 8.8.6 getopts命令 219 8.9 循环语句的I/O重定向 221 8.9.1 while循环的I/O重定向 221 8.9.2 until循环的I/O重定向 222 8.9.3 for循环的I/O重定向 222 8.10 Here文档 223 8.11 Shell函数 227 8.12 逻辑与和逻辑或并列结构 232 8.12.1 逻辑与命令并列结构 232 8.12.2 逻辑或命令并列结构 233 8.13 Shell数组 233 8.14 信号的捕捉与处理 238 8.15 其他Shell课题 241 8.15.1 子Shell 241 8.15.2 Shell脚本的调试 242 8.15.3 系统性能考虑 246 第9 进程管理 248 9.1 ps命令概述 249 9.2 查询进程及其状态信息 251 9.2.1 查询当前活动的进程 251 9.2.2 查询系统中的所有进程 251 9.2.3 显示进程的重要状态 信息 252 9.2.4 显示进程的详细状态 信息 253 9.2.5 显示进程间的调用关系 253 9.2.6 pstree命令 254 9.3 监控进程及系统资源 255 9.4 终止进程的运行 259 9.5 调整分时进程的优先级 261 9.5.1 nice命令 261 9.5.2 renice命令 263 9.5.3 调整进程优先级的作用 263 第10 proc文件系统 265 10.1 进程内存映像文件 266 10.2 系统配置信息 270 10.3 系统运行状态信息 273 10.4 系统可调参数 276 10.4.1 文件系统可调参数 277 10.4.2 系统内核可调参数 277 10.4.3 sysctl命令 281 10.5 其他重要的子目录 282 第11 磁盘空间管理 285 11.1 查询磁盘空间信息 286 11.1.1 常用的磁盘空间 ??管理工具 286 11.1.2 使用df命令检查磁盘 ??空间的使用情况 286 11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 11.1.7 使用ls命令检测文件的 ??大小 292 11.2 采用标准工具备份与恢复数据 292 11.2.1 利用cpio实现备份和 ??恢复 294 11.2.2 利用tar实现备份和 ??恢复 298 11.2.3 利用dd实现文件系统的 ??原样复制 304 11.3 采用专用工具备份与恢复数据 305 11.3.1 利用dump命令实现数据的 ??备份 306 11.3.2 利用restore命令实现 ??数据的恢复 308 11.4 文件系统限额管理 310 11.4.1 限额概述 310 11.4.2 设置限额 312 11.4.3 限额的维护 315 第12 软件管理 318 12.1 软件管理概述 319 12.1.1 软件维护工具 319 12.1.2 软件管理基本概念 319 12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更新与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 325 12.3 利用aptitude管理软件包 327 12.3.1 安装软件包 329 12.3.2 系统的升级 330 12.3.3 查询软件包 330 12.3.4 检索软件包 330 12.3.5 删除软件包 332 12.3.6 图形界面 333 12.4 synaptic图形界面软件管理 工具 333 12.4.1 浏览软件包 335 12.4.2 安装软件包 335 12.4.3 删除软件包 336 12.4.4 软件升级 337 12.5 GNOME软件增删工具 338 12.6 软件包的自动更新 339 第13 用户管理 341 13.1 增加与删除用户 342 13.1.1 /etc/passwd文件 342 13.1.2 /etc/shadow文件 343 13.1.3 用户管理实例 344 13.2 定制用户的工作环境 349 13.2.1 选择命令解释程序 349 13.2.2 设置用户初始化文件 351 12.2.3 定制Shell工作环境 353 13.3 增加与删除用户组 359 13.4 监控用户 360 13.4.1 利用who命令查询 ??系统中的用户 361 13.4.2 利用finger命令查询 ??系统中的用户 362 13.4.3 利用w命令查询系统 ??中的用户活动 362 13.4.4 向注册用户发送消息 362 13.5 插件式认证模块 363 13.5.1 配置文件、模块类型与 ??控制标志 363 13.5.2 修改PAM配置文件 366 13.6 超级用户与sudo命令 366 13.6.1 超级用户的访问控制 367 13.6.2 利用sudo运行特权 ??命令 368 13.6.3 sudoers配置文件 369 13.6.4 admin用户组成员的 ??访问权限 373 13.6.5 直接使用root注册 373 13.6.6 以不同的用户身份 ??访问系统 373 第14 系统启动与关机 375 14.1 磁盘分区与GRUB 376 14.1.1 磁盘分区 376 14.1.2 GRUB 378 14.1.3 GRUB配置文件 379 14.1.4 安装或修复GRUB 381 14.2 初始引导过程 383 14.2.1 GRUB引导过程概述 384 14.2.2 补充说明 386 14.3 系统生成过程 386 14.3.1 基本概念 388 14.3.2 init进程与/etc/event.d ??目录 391 14.3.3 启动用户定义的应用 ??程序 394 14.4 Login进程 395 14.4.1 login进程与passwd ??文件 395 14.4.2 Shell进程与profile ??文件 395 14.5 系统关机过程 396 14.5.1 使用shutdown命令 ??关闭系统 396 14.5.2 使用init命令关闭系统 397 14.5.3 使用其他命令关机 397 第15 作业调度与系统日志 398 15.1 定时运行后台作业 399 15.1.1 cron守护进程的 ??调度过程 399 15.1.2 at作业与atd守护进程 400 15.1.3 调度错失执行时间 ??的任务 401 15.2 调度重复执行的任务 402 15.2.1 crontab文件的工作原理 402 15.2.2 创建和编辑crontab ??文件 404 15.2.3 显示crontab文件 405 15.2.4 删除crontab文件 405 15.2.5 crontab命令的访问控制 405 15.2.6 应用实例—数据库 ??定时备份 406 15.3 调度一次性执行的作业 407 15.3.1 提交at作业 408 15.3.2 显示at作业及作业队列 409 15.3.3 删除at作业 409 15.3.4 at命令的访问控制 409 15.3.5 应用实例—系统 ??定时关机 410 15.4 系统日志 411 15.4.1 系统日志文件 412 15.4.2 应用程序日志文件 413 15.4.3 无法直接查阅的日志 413 15.4.4 系统日志守护进程 414 第16 文件系统内部组织 417 16.1 文件系统的组织结构 418 16.1.1 引导块 419 16.1.2 数据块组 419 16.2 超级块 422 16.3 信息节点 424 16.3.1 文件的类型与访问权限 426 16.3.2 数据块地址数组 426 16.3.3 符号链接文件 427 16.3.4 特权标志位 427 16.4 信息节点与目录及文件的关系 428 16.4.1 目录文件 428 16.4.2 目录、文件和信息节点 ???三者之间的关系 429 第17 文件系统管理 431 17.1 划分磁盘分区 432 17.2 创建文件系统 434 17.2.1 mkfs或mke2fs命令 ??介绍 434 17.2.2 创建Ext2/Ext3文件 ??系统 436 17.3 调整文件系统 437 17.4 安装与卸载文件系统 439 17.4.1 安装文件系统概述 439 17.4.2 mount命令 440 17.4.3 /etc/fstab文件 441 17.4.4 安装文件系统 442 17.4.5 卸载文件系统 444 17.5 检测与修复文件系统 446 17.5.1 何时需要检测文件系统 447 17.5.2 文件系统检测的内容 448 17.5.3 交互地检测与修复 ??文件系统 452 17.5.4 自动检测与修复文件 ??系统 453 17.5.5 恢复严重受损的超级块 454 17.5.6 解决fsck命令无法修复 ??的文件系统问题 454 17.5.7 fsck的阶段处理方式 455 17.6 调试文件系统 458 17.6.1 概述 458 17.6.2 交互式调试子命令 459 17.6.3 应用举例1—恢复 ??误删的文件 464 17.6.4 应用举例2—恢复 ??误删的文件 465 17.7 其他文件系统维护工具 467 17.7.1 dumpe2fs命令 467 17.7.2 e2image命令 468 第18 TCP/IP网络管理 470 18.1 TCP/IP简介 471 18.1.1 TCP/IP的层次结构 471 18.1.2 TCP/IP如何处理数据 ??通信 473 18.2 网络接口设置 475 18.2.1 以太网络设置 475 18.2.2 ADSL网络连接 480 18.3 主机名字解析 483 18.4 网络路由设置 484 18.5 配置网络服务 485 18.6 网络管理与维护 487 18.6.1 使用ifconfig命令维护 ??网络接口 487 18.6.2 使用netstat命令监控 ??网络状态 489 18.6.3 使用ping命令测试远程 ??主机的连通性 494 18.6.4 使用ping命令检测网络 ??主机的性能 495 18.6.5 使用ftp命令检测网络 ??主机的传输性能 496 18.6.6 使用traceroute命令跟踪 ??路由信息 496 18.6.7 利用tcpdump捕捉、分析 ??网络分组数据 497 第19 TCP/IP网络应用 501 19.1 OpenSSH 502 19.1.1 安装OpenSSH服务器 502 19.1.2 /etc/ssh/sshd_config ??配置文件 502 19.1.3 使用SSH注册到 ??远程系统 505 19.1.4 使用ssh执行远程系统 ??中的命令 506 19.1.5 使用SCP替代FTP 506 19.1.6 使用SFTP替代FTP 507 19.1.7 SSH与SCP的无 ??密码注册 508 19.1.8 OpenSSH的安全考虑 510 19.2 Telnet远程注册 510 19.2.1 设置Telnet服务器 511 19.2.2 Telnet服务器的安全 ??考虑 512 19.3 FTP文件传输 513 19.3.1 设置vsftpd 513 19.3.2 vsftpd.conf配置文件 513 19.3.3 FTP安全考虑 517 19.3.4 FTP应用 518 19.3.5 FTP自动注册 519 第20 DNS域名服务器 521 20.1 DNS基本概念 522 20.1.1 域与区 522 20.1.2 DNS域名服务器 523 20.1.3 DNS域名与地址解析 524 20.2 DNS配置文件 526 20.2.1 resolv.conf文件 527 20.2.2 named.conf配置文件 528 20.2.3 区配置文件 532 20.2.4 DNS资源记录 533 20.3 DNS服务器配置过程 537 20.3.1 设置resolv.conf配置 ??文件 537 20.3.2 设置named.conf配置 ??文件 537 20.3.3 设置正向区配置文件 538 20.3.4 设置反向区配置文件 539 20.3.5 DNS视图 540 20.3.6 检测配置文件 543 20.4 测试DNS服务器 544 20.4.1 验证DNS服务器 544 20.4.2 dig命令 545 第21 NFS网络文件系统 548 21.1 NFS简述 549 21.2 配置NFS服务器 550 21.2.1 安装NFS服务器 ??软件包 550 21.2.2 /etc/exports文件 551 21.2.3 采用图形界面配置NFS ??共享资源 553 21.2.4 验证NFS共享资源的 ??配置 555 21.3 配置NFS客户系统 557 21.3.1 安装远程文件系统 557 21.3.2 设置/etc/fstab文件 558 21.4 NFS自动安装 559 21.4.1 主映射文件 559 21.4.2 直接映射文件 560 21.4.3 间接映射文件 560 21.5 NFS故障修复 561 21.5.1 基本工具 561 21.5.2 其他注意事项 564 第22 amba资源共享 565 22.1 安装Samba服务器 566 22.2 smb.conf配置文件 567 22.2.1 smb.conf配置文件概述 568 22.2.2 Global节 569 22.2.3 homes节 572 22.2.4 printers节 574 22.3 快速设置Samba服务器 575 22.3.1 设定Samba服务器的 ??工作组或域 575 22.3.2 设置Samba用户认证 ??信息 576 22.3.3 共享用户主目录 577 22.3.4 共享其他目录 577 22.3.5 共享打印机 578 22.3.6 验证Samba配置文件 579 22.4 Samba运行环境测试 580 22.4.1 在Linux系统中测试 ??Samba服务器 580 22.4.2 从Windows系统中 ??连接Samba服务器 583 22.5 访问共享资源 584 22.5.1 从Windows系统中访问 ??Samba服务器 584 22.5.2 从Linux系统中访问 Windows服务器 585 第23 Apache服务器 588 23.1 Apache服务器概述 589 23.2 启动Apache服务器 589 23.2.1 Apache软件包的目录 ??结构 589 23.2.2 apache2守护进程 590 23.2.3 设置Apache启动脚本 591 23.2.4 Apache模块 592 23.3 配置Apache服务器 592 23.3.1 Apache配置文件 593 23.3.2 .htaccess文件 594 23.3.3 配置指令 594 23.4 用户目录 599 23.4.1 利用UserDir设定 ??目录路径 600 23.4.2 限定用户目录的使用 600 23.4.3 开放用户CGI目录 600 23.5 虚拟主机 601 23.5.1 配置基于主机名的虚拟 主机 602 23.5.2 配置基于IP地址的 ??虚拟主机 603 23.5.3 利用不同的IP地址提供 ??相同的网站服务 604 23.5.4 利用不同的端口提供 ??不同的网站服务 604 23.6 利用CGI提供动态内容服务 605 23.6.1 启用CGI程序 605 23.6.2 编写CGI程序 606 23.6.3 CGI的安全考虑与 ??suexec 608 23.6.4 Apache与LAMP 609 23.7 用户认证 610 23.7.1 用户认证的实现 610 23.7.2 用户认证方法的补充 ??说明 612 23.8 日志文件 613 23.8.1 错误日志文件 614 23.8.2 访问日志文件 615 23.8.3 虚拟主机日志 617 第24 MySQL数据库 618 24.1 安装与配置MySQL数据库 619 24.1.1 安装MySQL数据库 619 24.1.2 my.cnf配置文件 619 24.1.3 MySQL数据库命令行 界面 621 24.1.4 MySQL数据库图形界面 622 24.1.5 设置数据库用户及其 ??访问权限 624 24.2 访问MySQL数据库 624 24.2.1 创建、查询、使用与删除 数据库 624 24.2.2 创建、查询与删除数 据库表 625 24.2.3 录入数据 626 24.3 查询MySQL数据库 627 24.3.1 查询数据库表 627 24.3.2 查询数据库表结构 628 24.3.3 查询数据库表中的数据 内容 628 24.4 SQL脚本与批处理 628 24.5 MySQL数据库 630 24.5.1 数据库备份方法 630 24.5.2 MySQL数据库备份 631 24.5.3 MySQL数据库恢复 632 24.5.4 MySQL数据库表的 备份与恢复 633 24.5.5 增量备份与恢复 633 24.6 密码维护与网络安全 635 24.6.1 维护数据库管理员密码 635 24.6.2 恢复数据库管理员密码 636 24.6.3 基本网络安全考虑 637 参考文献 638
分成两个分卷进行压缩 《Ubuntu权威指南》目录 目  录 第1 系统概述与安装 1 1.1 Linux的兴起与发展 2 1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面环境 20 2.2 GNOME桌面环境浏览 21 2.2.1 GNOME菜单面板 21 2.2.2 GNOME桌面区 24 2.2.3 GNOME窗口面板 26 2.3 应用程序菜单 27 2.3.1 办公 28 2.3.2 附件 29 2.3.3 互联网 31 2.3.4 图形 33 2.3.5 影音 34 2.3.6 游戏 36 2.3.7 添加/删除软件 36 2.4 位置菜单 36 2.4.1 主文件夹 38 2.4.2 桌面、文档等 39 2.4.3 计算机 39 2.4.4 CD/DVD刻录机 39 2.4.5 磁盘分区 40 2.4.6 网络 40 2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动存储介质 53 2.7 定制GNOME桌面环境 54 2.7.1 定制面板 54 2.7.2 定制桌面背景 54 2.7.3 定制菜单面板 55 第3 命令行基础知识 56 3.1 命令行结构 57 3.2 后台进程 60 3.3 标准输入/标准输出与标准错误 ?输出 61 3.4 输入/输出重定向 61 3.5 管道 65 3.6 元字符与文件名生成 67 3.7 转义与引用 69 3.8 命令历史 72 3.8.1 fc命令 72 3.8.2 history命令 74 3.8.3 重复执行先前的命令 75 3.8.4 编辑并执行校正后的命令 76 3.8.5 命令行补充 77 3.9 命令别名 79 3.10 作业控制 81 3.11 会话记录与命令确认 83 3.11.1 保存会话记录 83 3.11.2 确保使用的命令是 ??正确的 84 第4 文件系统基础知识 86 4.1 文件系统的层次结构 87 4.1.1 树形层次结构 87 4.1.2 路径名 88 4.2 文件系统的组织结构 88 4.3 文件的类型 92 4.3.1 普通文件 92 4.3.2 目录文件 94 4.3.3 特殊文件 95 4.3.4 链接文件 98 4.3.5 符号链接文件 99 4.3.6 管道文件 101 4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4
第1 数字图像与图像处理 1 1.1 数字图像相关概念 1 1.1.1 数字图像 1 1.1.2 图像处理 2 1.1.3  图像识别 2 1.1.4 图像理解 3 1.2 图像的获取、显示与表示 3 1.2.1 图像的获取 3 1.2.2 图像显示 4 1.2.3 图像表示 4 1.3 数字图像处理系统的基本组成结构 9 第2 相关的图像处理技术 10 2.1  图像分割技术 10 2.1.1 阈与图像分割 10 2.1.2 梯度与图像分割 11 2.1.3 边界提取与轮廓跟踪 11 2.1.4  Hough变换 12 2.1.5 区域增长 12 2.2 图像复原 12 2.2.1 数学模型 12 2.2.2 维纳滤波(Wiener Filtering) 13 2.3 图像的纹理分析技术 13 2.3.1 空间灰度层共现矩阵 14 2.3.2  纹理能量测量 16 2.3.3 纹理的结构分析方法和纹理梯度 18 2.3.4 纹理识别示例——云类自动识别 19 2.4 图像的形态学处理技术 20 2.4.1 基本概念 21 2.4.2 开运算和闭运算 22 2.4.3 击中、击不中、变换 (HMT-Hit Miss Transform) 23 2.4.4 边界和骨架(Boundary and Skeleton) 23 第 3 指纹识别系统(上) 24 3.1 指纹识别的历史 24 3.2 指纹识别研究的现状 24 3.3 指纹识别系统的构成  25 3.3.1 指纹的录入 26 3.3.2 指纹图像增强 28 3.3.3 指纹识别的基本原理 29 3.3.4  系统问题 30 3.3.5 系统性能评估 31 3.3.6 一套指纹识别算法库的构成 32 3.4 指纹的粗分类与匹配 89 3.5  基于Matlab的指纹识别系统 92 3.5.1 主界面程序 93 3.5.2 指纹中心计算程序 115 3.5.3 计算有效区域 117 3.5.4 二维Gabor变换 118 3.5.5 归一化扇区 119 3.5.6 读取图像 120 3.5.7  旋转角度计算 121 第4 指纹识别系统(下) 123 4.1 指纹图像的预处理 123 4.1.1 预处理概述  123 4.1.2 指纹质量评估 124 4.1.3 指纹图像分割 129 4.1.4 指纹图像增强 134 4.1.5  指纹图像二化 135 4.1.6 指纹图像细化 136 4.1.7 相关预处理算法代码 139 4.2 指纹特征提取  177 4.2.1 指纹特征的表述 177 4.2.2 局部细节特征提取 180 4.2.3 特征提取算法代码 186 4.3  基于点模式的细节匹配 194 4.4 指纹识别的实际应用案例 204 4.4.1 指纹门禁系统 204 4.4.2 指纹考勤系统 205 4.5 指纹处理算法库测试程序 206 4.6 本小结 218 第5 数字水印技术 219 5.1  基本概念 219 5.1.1 水印技术的基本要求 219 5.1.2 数字水印算法基本思路 219 5.1.3 一些关键问题 220 5.2 水印应用现状分析 220 5.2.1 现有水印算法不适应版权保护 220 5.2.2 盲检测算法 222 5.2.3  盲检测算法的公证 222 5.2.4 数字水印系统的一般组成 223 5.3 基于DCT域的数字水印方案 223 5.3.1  离散余弦变换 223 5.3.2 Torus自同构映射 224 5.3.3 人眼视觉频率响应及DCT变换系数的选取 224 5.3.4  水印算法 226 5.4 基于扩频通信的水印算法 228 5.4.1 扩频通信原理 228 5.4.2 扩频通信在数字水印中的利用 229 5.4.3 加载强度的讨论 233 5.4.4 水印加载算法的实现 237 5.5 一个基于DCT域的实例  240 5.5.1 一些算法代码 240 5.5.2 加载水印 271 5.5.3 提取水印 275 5.5.4 水印算法评价 281 5.6 本小结 294 第6 条形码技术 295 6.1 常用的条码编码规则 295 6.1.1  条码的一般组成 295 6.1.2 条码的种类 296 6.1.3 EAN-13码的构造 296 6.2 一个简单的条形码打印系统 298 6.3 一维条形码的识别 312 6.3.1 硬件识别系统 312 6.3.2 预处理过程 312 6.3.3  译码过程 314 6.4 一维条形码识别系统实例 315 6.4.1 DIB.H位图存取头文件 316 6.4.2  DIB.CPP位图存取源程序 317 6.4.3 BARRECOG.H条码识别头文件 322 6.4.4 BARRECOG.CPP条码识别源程序 323 6.5 二维条形码介绍 337 6.5.1 PDF417符号的结构 338 6.5.2 簇及符号字符定义 338 6.5.3 层编码 339 6.5.4 模式结构 339 6.5.5 起始符和终止符 340 6.5.6  空白区 340 6.5.7 错误监测与纠正 340 6.6 二维条形码打印程序 340 6.6.1 PDF417LIB.H二维条形码库头文件 340 6.6.2 PDF417LIBIMP.H数据定义 342 6.6.3 PDF417LIB.C函数实现文件  353 6.6.4 PDF417.C主程序 377 6.7 本小结 378 第7 手势识别系统 379 7.1  立体测量 379 7.1.1 立体匹配法 379 7.1.2 立体视觉的原理 379 7.1.3 用立体视觉进行距离测量  381 7.2 用一台摄像头进行距离测量 382 7.2.1 摄像头正对前方 382 7.2.2 摄像头倾斜 383 7.2.3  一台摄像头测量距离 385 7.3 假想演奏系统的构成 387 7.3.1 系统概述 387 7.3.2 肤色提取 388 7.3.3  右手位置检测 390 7.3.4 摄像机的距离测量 391 7.3.5 音阶范围与音量范围 391 7.3.6 声音的表现方法 392 7.3.7 系统整体构成 393 7.4 程序代码 393 7.5 本小结 432 第8 印鉴鉴定系统 433 8.1 伪印鉴的制作及人工防伪技术 433 8.1.1 常用伪造印鉴的方法及其特征 433 8.1.2 真假印鉴印文的检验 435 8.2 印鉴图像的分离 435 8.2.1 封闭凸多边形图像提取的算法提出 436 8.2.2 封闭凸多边形图像的提取方法——种子扩散浮置实体算法 436 8.3 基于矩不变量的印鉴识别 439 8.4 基于Fourier描述符的印鉴识别方法 441 8.4.1 提取字符包络线 441 8.4.2 字符包络线的Fourier描述 442 8.5 基于边缘和模板匹配的印鉴识别 443 8.6 部分算法代码 446 8.6.1 背景去除(利用颜色) 446 8.6.2 基于矩不变量的代码 450 8.7 本小结 455 第9 光学字符识别技术(上) 456 9.1 概述 456 9.1.1 文字识别系统的构成 456 9.1.2 文字识别技术 457 9.1.3 印刷体汉字识别 459 9.1.4 存在的问题 461 9.2  预处理技术 461 9.2.1 二化 462 9.2.2 版面分析 463 9.2.3 倾斜度校正 464 9.2.4  版面切分 467 9.2.5 行、字分割 467 9.2.6 细化和规范化 469 9.2.7 预处理算法源代码示例 470 9.3  特征提取 537 9.3.1 概述 538 9.3.2 边缘跟踪 538 9.3.3 笔画的分类 540 9.3.4 笔画识别前的噪声处理 541 9.3.5 笔画方向码合并处理及笔画识别 542 9.3.6 笔画间特征量的定义及识别 543 9.3.7  整字匹配的距离准则 544 9.3.8 一些统计特征 545 第10 光学字符识别技术(下) 549 10.1 分类与识别 549 10.1.1 判别器的选择 549 10.1.2 决策树的基本概念 550 10.1.3 决策树设计 552 10.1.4  节点分类器设计 555 10.1.5 多方案组合识别器 558 10.1.6 代码示例 560 10.2 后处理 623 10.3  OCR程序示例 639 10.4 本小结 640

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值