久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

多媒體技術(shù)教程(林福宗)第13章錯(cuò)誤檢測和校正

 百眼通 2014-09-29

  光盤、磁盤和磁帶一類的數(shù)據(jù)記錄媒體一樣,,由于盤的制作材料的性能,、盤制造生產(chǎn)技術(shù)水平的限制、驅(qū)動(dòng)器的性能以及使用不當(dāng)?shù)戎T多原因,,從盤上讀出的數(shù)據(jù)不可能完全正確,。據(jù)有關(guān)廠家的測試和統(tǒng)計(jì),一片未使用過的只讀光盤,,某原始誤碼率約為3×10-4,;沾有指紋的盤的誤碼率約為6×10-4;有傷痕的盤的誤碼率約為5×10-3,。針對這種情況,,激光盤存儲(chǔ)器采用了功能強(qiáng)大的錯(cuò)誤碼檢測和糾正措施。采用的具體對策歸納起來有三種:
  (1) 錯(cuò)誤檢測:采用CRC(Cyclic Redundancy Code)檢測讀出數(shù)據(jù)是否有錯(cuò),。
  (2) 錯(cuò)誤校正碼: 采用里德-索洛蒙碼(Reed-Solomon Code),,簡稱為RS碼,,進(jìn)行糾錯(cuò)。RS碼被認(rèn)為是性能很好的糾錯(cuò)碼,。
  (3) 交叉交插里德-索洛蒙碼CIRC(Cross Interleaved Reed-Solomon Code), 這個(gè)碼的含義可理解為在用RS編譯碼前后,,對數(shù)據(jù)進(jìn)行交插處理和交叉處理。
  對這些碼的理論分析和計(jì)算有許多專著作了詳盡的深入論述,,對不需要開發(fā)糾錯(cuò)技術(shù)的讀者僅需要了解錯(cuò)誤檢測和校正的一些基本概念即可,。

13.1 CRC錯(cuò)誤檢測原理

  在糾錯(cuò)編碼代數(shù)中,把以二進(jìn)制數(shù)字表示的一個(gè)數(shù)據(jù)系列看成一個(gè)多項(xiàng)式,。例如,,二進(jìn)制數(shù)字序列10101111,用多項(xiàng)式可以表示成:
    M(x) = a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x1 + a0x0
       = x7 + x6 + x5 + x4 + x3 + x2 + x1 + 1
式中的xi表示代碼的位置,,或某個(gè)二進(jìn)制數(shù)位的位置,,xi前面的系數(shù)ai表示碼的值。若ai是一位二進(jìn)制代碼,,則取值是0或1,。M(x)稱為信息代碼多項(xiàng)式。
  在模2多項(xiàng)式代數(shù)運(yùn)算中定義的運(yùn)算規(guī)則有:
    1xi + 1xi = 0
    -1xi = 1xi
  例如,,模2多項(xiàng)式的加法和減法:
    
  從這兩個(gè)例子中可以看到,,對于模2運(yùn)算來說,代碼多項(xiàng)式的加法和減法運(yùn)算所得的結(jié)果相同,。所以在做代碼多項(xiàng)式的減法時(shí),,可用做加法來代替做減法。
  代碼多項(xiàng)式的除法可按長除法做,。例如:
    

  如果一個(gè)k位的二進(jìn)制信息代碼多項(xiàng)式為 M(x),再增加(n-k)位的校驗(yàn)碼,,那么增加(n-k)位之后,,信息代碼多項(xiàng)式在新的數(shù)據(jù)塊中就表示成 xn-kM(x) ,如圖13-01所示,。


圖13-01 信息代碼結(jié)構(gòu)

如果用一個(gè)校驗(yàn)碼生成多項(xiàng)式 G(x) 去除代碼多項(xiàng)式 xn-kM(x),,得到的商假定為 Q(x) ,余式為 R(x) ,,則可寫成
   
   xn-kM(x) = Q(x)G(x) + R(x)
  因?yàn)槟?多項(xiàng)式的加法和減法運(yùn)算結(jié)果相同,,所以又可把上式寫成:
   xn-kM(x) + R(x) = Q(x)G(x)
 G(x) 稱為校驗(yàn)碼生成多項(xiàng)式。從該式中可以看到,,代表新的代碼多項(xiàng)式 xn-kM(x) + R(x) 是能夠被校驗(yàn)碼生成多項(xiàng)式 G(x) 除盡的,,即它的余項(xiàng)為0。
  例如,,CD盤中的q通道和軟磁盤存儲(chǔ)器中使用的CRC校驗(yàn)碼生成多項(xiàng)式是
   G(x) = x16 + x12 + x5 + 1
  若用二進(jìn)制表示,,則為
   G(x) = 100010000000100001(B) = 11021(H)
  假定要寫到盤上的信息代碼 M(x) 為
   M(x) = 4D6F746F (H)
  由于增加了2個(gè)字節(jié)共16位的校驗(yàn)碼,,所以信息代碼變成 x16M(x): 4D6F746F0000(H)。 CRC檢驗(yàn)碼計(jì)算如下:

  兩數(shù)相除的結(jié)果,,其商可不必關(guān)心,,其余數(shù)為B994(H)就是CRC校驗(yàn)碼。把信息代碼寫到盤上時(shí),,將原來的信息代碼和CRC碼一起寫到盤上,。在這個(gè)例子中,寫到盤上的信息代碼和CRC碼是4D6F746FB994,

4D6F746F

B994

信息代碼

CRC碼

  這個(gè)碼是能被11021(H)除盡的,。
  從盤上把這塊數(shù)據(jù)讀出時(shí),,用同樣的CRC碼生成多項(xiàng)式去除這塊數(shù)據(jù),相除后得到的兩種可能結(jié)果是: ?、儆鄶?shù)為0,,表示讀出沒有出現(xiàn)錯(cuò)誤;
 ?、谟鄶?shù)不為0,,表示讀出有錯(cuò)。
  CD-ROM中也采用了相同的CRC檢錯(cuò),。CD-ROM扇區(qū)方式01中,,有一個(gè)4字節(jié)共32位的EDC字域,它就是用來存放CRC碼,。不過,,CD-ROM采用的CRC校驗(yàn)碼生成多項(xiàng)式與軟磁盤采用的生成多項(xiàng)式不同,它是一個(gè)32階的多項(xiàng)式,
   P(x) = (x16 + x15 + x2 + 1)(x16 + x2 + x + 1) 
  計(jì)算CRC碼時(shí)用的數(shù)據(jù)塊是從扇區(qū)的開頭到用戶數(shù)據(jù)區(qū)結(jié)束為止的數(shù)據(jù)字節(jié),,即字節(jié)0~2063共2064個(gè)字節(jié),。在EDC中存放的CRC碼的次序如下:

EDC:

x24-x31

x16-x23

x8-x15

x0-x7

字節(jié)號(hào):

2064

2065

2066

2067

13.2 RS編碼和糾錯(cuò)算法

13.2.1. GF(2m)域

  RS(Reed-Solomon)碼在伽羅華域(Galois Field,GF)中運(yùn)算的,,因此在介紹RS碼之前先簡要介紹一下伽羅華域,。
   CD-ROM中的數(shù)據(jù)、地址,、校驗(yàn)碼等都可以看成是屬于GF(2m) = GF(28)中的元素或稱符號(hào),。GF(28)表示域中有256個(gè)元素,除0,,1之外的254個(gè)元素由本原多項(xiàng)式P(x)生成,。本原多項(xiàng)式P(x)的特性是,得到的余式等于0,。CD-ROM用來構(gòu)造GF(28) 域的P(x)是
    P(x) = x8 + x4 +x3 + x2 + 1 (13-1)
   而GF(28)域中的本原元素為
    α = (0 0 0 0 0 0 1 0)
   下面以一個(gè)較簡單例子說明域的構(gòu)造,。
   [例13.1] 構(gòu)造GF(23)域的本原多項(xiàng)式P(x)假定為
    P(x) = x3 + x + 1
    α定義為P(x) = 0的根,即
    α3+α+1 = 0
    和 α3 = α+1
   GF(23)中的元素可計(jì)算如下:

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

……

 

  用二進(jìn)制數(shù)表示域元素得到表13-01所示的對照表

表13-01 GF(23)域中與二進(jìn)制代碼對照表,P(x) =  

GF(23)域元素

二進(jìn)制對代碼

0

(000)

α0

(001)

α1

(010)

α2

(100)

α3

(011)

α4

(110)

α5

(111)

α6

(101)

  這樣一來就建立了GF(23)域中的元素與3位二進(jìn)制數(shù)之間的一一對應(yīng)關(guān)系,。用同樣的方法可建立GF(28)域中的256個(gè)元素與8位二進(jìn)制數(shù)之間的一一對應(yīng)關(guān)系,。在糾錯(cuò)編碼運(yùn)算過程中,,加、減,、乘和除的運(yùn)算是在伽羅華域中進(jìn)行?,F(xiàn)仍以GF(23)域中運(yùn)算為例:
   加法例:α0+α3 = 001+011 = 010 = α1
   減法例:與加法相同
   乘法例:α5·α4 = α(5+4) mod7 = α2
   除法例:α53 = α2
       α35 = α-2 = α(-2+7) = α5
   取對數(shù):log(α5) = 5
   這些運(yùn)算的結(jié)果仍然在GF(23)域中。

13.2.2 RS的編碼算法

  RS的編碼就是計(jì)算信息碼符多項(xiàng)式M(x)除以校驗(yàn)碼生成多項(xiàng)式之后的余數(shù),。
  在介紹之前需要說明一些符號(hào),。在GF(2m)域中,符號(hào)(n,,k)RS的含義如下:
  m      表示符號(hào)的大小,,如m = 8表示符號(hào)由8位二進(jìn)制數(shù)組成
  n      表示碼塊長度
  k      表示碼塊中的信息長度
  K=n-k = 2t 表示校驗(yàn)碼的符號(hào)數(shù)
  t      表示能夠糾正的錯(cuò)誤數(shù)目

  例如,(28,,24)RS碼表示碼塊長度共28個(gè)符號(hào),,其中信息代碼的長度為24,檢驗(yàn)碼有4個(gè)檢驗(yàn)符號(hào),。在這個(gè)由28個(gè)符號(hào)組成的碼塊中,,可以糾正在這個(gè)碼塊中出現(xiàn)的2個(gè)分散的或者2個(gè)連續(xù)的符號(hào)錯(cuò)誤,但不能糾正3個(gè)或者3個(gè)以上的符號(hào)錯(cuò)誤,。
  對一個(gè)信息碼符多項(xiàng)式M(x),,RS校驗(yàn)碼生成多項(xiàng)式的一般形式為
    (13-2)
式中,m0是偏移量,,通常取K0 = 0或K0= 1,,而(n-k)≥2t (t為要校正的錯(cuò)誤符號(hào)數(shù))。
  下面用兩個(gè)例子來說明RS碼的編碼原理,。
  [例13.2] 設(shè)在GF(23)域中的元素對應(yīng)表如表13-01所示,。假設(shè)(6,4)RS碼中的4個(gè)信息符號(hào)為,,信息碼符多項(xiàng)式M(x)為
   M(x) = m3x3 + m2x+ m1x + m0 (13-3)
  并假設(shè)RS校驗(yàn)碼的2個(gè)符號(hào)為Q1和Q0,,的剩余多項(xiàng)式R(x)為
   R(x) = Q1(x) + Q0
  這個(gè)多項(xiàng)式的階次比G(x)的階次少一階。
  如果K0 = 1,,t = 1,,由式(13-2)導(dǎo)出的RS校驗(yàn)碼生成多項(xiàng)式就為
    = (x-α)(x-α2) (13-4)
  根據(jù)多項(xiàng)式的運(yùn)算,,由式(13-3)和式(13-4)可以得到
   m3x5+m2x4+m1x3+m0x2+Q1x+Q0 = (x-α)(x-α2)Q(x)
  當(dāng)用x = α和x = α2代入上式時(shí),,得到下面的方程組,
   
  經(jīng)過整理可以得到用矩陣表示的(6,,4)RS碼的校驗(yàn)方程:
   
  求解方程組就可得到校驗(yàn)符號(hào):
   
  在讀出時(shí)的校正子可按下式計(jì)算:
   
  [例13.3] 在例13.2中,,如果K0 = 0,t = 1,,由式(13-2)導(dǎo)出的RS校驗(yàn)碼生成多項(xiàng)式就為
    = (x-α0)(x-α1) (13-5)
  根據(jù)多項(xiàng)式的運(yùn)算,,由(13-3)和(13-5)可以得到下面的方程組:
   
  方程中的αi也可看成符號(hào)的位置,,此處i = 0,1,,…,,5。
  求解方程組可以得到RS校驗(yàn)碼的2個(gè)符號(hào)為Q1和Q0,,
    (13-6)
  假定mi為下列值:

 信息符號(hào)

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

 校驗(yàn)符號(hào)

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

 校正子

 s0 = 0
 s1 = 0

  代入(13-6)式可求得校驗(yàn)符號(hào):
  Q1 = α6 = 101
  Q0 = α4 = 110

13.2.3 RS碼的糾錯(cuò)算法

  RS碼的錯(cuò)誤糾正過程分三步: (1)計(jì)算校正子(syndrome),,(2)計(jì)算錯(cuò)誤位置,(3)計(jì)算錯(cuò)誤值?,F(xiàn)以例13.3為例介紹RS碼的糾錯(cuò)算法,。
  校正子使用下面的方程組來計(jì)算:
   
  為簡單起見,假定存入光盤的信息符號(hào)m3,、m2,、m1、m0和由此產(chǎn)生的檢驗(yàn)符號(hào)Q1,、Q0均為0,,讀出的符號(hào)為m3′、m2′,、m1′,、m0′、Q1′和Q0′,。
  如果計(jì)算得到的s0和s1不全為0,,則說明有差錯(cuò),但不知道有多少個(gè)錯(cuò),,也不知道錯(cuò)在什么位置和錯(cuò)誤值,。如果只有一個(gè)錯(cuò)誤,則問題比較簡單,。假設(shè)錯(cuò)誤的位置為αx,,錯(cuò)誤值為mx,那么可通過求解下面的方程組:
  
  得知錯(cuò)誤的位置和錯(cuò)誤值,。
  如果計(jì)算得到s0 = α2和s1 = α5,,可求得αx= α3和mx = α2,說明m1出了錯(cuò),,它的錯(cuò)誤值是α2,。校正后的m1= m1′+mx ,本例中m1=0,。
  如果計(jì)算得到s0 = 0,,而s1≠0,那基本可斷定至少有兩個(gè)錯(cuò)誤,當(dāng)然出現(xiàn)兩個(gè)以上的錯(cuò)誤不一定都是s0 = 0和s1≠0,。如果出現(xiàn)兩個(gè)錯(cuò)誤,,而又能設(shè)法找到出錯(cuò)的位置,那么這兩個(gè)錯(cuò)誤也可以糾正,。如已知兩個(gè)錯(cuò)誤mx1和mx2的位置αx1和αx2,,那么求解方程組:
   
  就可知道這兩個(gè)錯(cuò)誤值。
  CD-ROM中的錯(cuò)誤校正編碼CIRC和里德-索洛蒙乘積碼(Reed Solomon Product-like Code,,RSPC)就是采用上述方法導(dǎo)出的,。

13.3 CIRC糾錯(cuò)技術(shù)

  光盤存儲(chǔ)器和其它的存儲(chǔ)器一樣,經(jīng)常遇到的錯(cuò)誤有兩種,。一種是由于隨機(jī)干擾造成的錯(cuò)誤,,這種錯(cuò)誤稱隨機(jī)錯(cuò)誤。它的特點(diǎn)是隨機(jī)的,、孤立的,,干擾過后再讀一次光盤,錯(cuò)誤就可能消失,。另一種錯(cuò)誤是連續(xù)多位出錯(cuò),,或連續(xù)多個(gè)符號(hào)出錯(cuò),如盤片的劃傷,、沾污或盤本身的缺陷都可能出現(xiàn)這種錯(cuò)誤,,一錯(cuò)就錯(cuò)一大片。這種錯(cuò)誤稱為突發(fā)錯(cuò)誤,。CIRC(Cross Interleaved Reed Solomon)糾錯(cuò)碼綜合了交插,、延時(shí)交插、交叉交插等技術(shù),,不僅能糾隨機(jī)錯(cuò)誤,,而且對糾突發(fā)錯(cuò)誤特別有效。

13.3.1 交插技術(shù)

  對糾錯(cuò)來說,,分散的錯(cuò)誤比較容易得到糾正,,但出現(xiàn)一長串的錯(cuò)誤時(shí),就較麻煩,。正如我們讀書看報(bào),,如果文中在個(gè)別地方出錯(cuò),根據(jù)前后文就容易判斷是什么錯(cuò),。如果連續(xù)錯(cuò)好多字,,就很難判斷該處寫的是什么。
  例如,,用X表示出現(xiàn)的錯(cuò)字,,一種錯(cuò)誤形式為“獨(dú)在異鄉(xiāng)XXX,每逢佳節(jié)倍思親”,,這是連續(xù)出現(xiàn)的錯(cuò)誤,,另一種錯(cuò)誤形式為“獨(dú)在異鄉(xiāng)X異客,每X佳節(jié)倍思X”,,這是分散出現(xiàn)的錯(cuò)誤,。這兩種錯(cuò)誤形式相比,同樣是3個(gè)錯(cuò)誤,,但人們更容易更正后一種形式的錯(cuò)誤,,更正之后為“獨(dú)在異鄉(xiāng)為異客,每逢佳節(jié)倍思親”,。
  這個(gè)道理很簡單,,把這種思想用在數(shù)字記錄系統(tǒng)中對突發(fā)錯(cuò)誤的更正非常有效。在光盤上記錄數(shù)據(jù)時(shí),,如果把本該連續(xù)存放的數(shù)據(jù)錯(cuò)開放,,那么當(dāng)出現(xiàn)一片錯(cuò)誤時(shí),這些錯(cuò)誤就分散到各處,,錯(cuò)誤就容易得到糾正,,這種技術(shù)就稱為交插(interleaving)技術(shù)。例如,,
  3個(gè)(5,,3)碼塊: B1 = (a2,a1,,a0,,P1,P0)
          B2 = (b2,,b1,,b0,Q1,,Q0)
          B3 = (c2,,c1,c0,,R1,,R0)

連續(xù)排列:

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

 連續(xù)錯(cuò)3個(gè):

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

  從這個(gè)例子中可以看到,對連續(xù)排列,,每個(gè)碼塊中只能出現(xiàn)一個(gè)錯(cuò)誤才能糾正,。而交插記錄后,讀出的3個(gè)連續(xù)錯(cuò)誤經(jīng)還原后可把它們分散到3個(gè)碼塊中,,每個(gè)碼塊可以糾正1個(gè)錯(cuò)誤,,總計(jì)可以糾正3個(gè)連續(xù)的錯(cuò)誤。
  一般來說,如果有r個(gè)(n,,k)碼,,排成r×n矩陣,按列交插后存儲(chǔ)或傳送,,讀出或接收時(shí)恢復(fù)成原來的排列,,若(n,k)碼能糾正t個(gè)錯(cuò)誤,,那么這樣交插后就可以糾正rt個(gè)突發(fā)錯(cuò)誤,。

13.3.2 交叉交插技術(shù)

  交叉交插(cross-interleaving)編碼是交插的一種變型。在實(shí)際應(yīng)用中,,也是一種重要的技術(shù)?,F(xiàn)仍以簡單的例子說明這種技術(shù)思想。
  (1) 用(5,,3)碼編碼器C2生成的4個(gè)碼塊為:
   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個(gè)碼塊為:
   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) 再交插,交插的碼塊數(shù)可以是2,、3,、4或5。以交插2個(gè)碼塊為例:
   a2 a1 b2 b1 c2 c1 d2 d1 T1 U1 T0 U0 a0 P1 b0 Q1 c0 R1 d0 S1
  (4) 最后一個(gè)碼塊不配對,,可以和下一個(gè)碼塊配對,。
  這種編碼技術(shù)用了兩個(gè)編碼器C2和C1。C2對原碼塊進(jìn)行編碼得到(5,,3)碼塊,,交插后生成由4個(gè)符號(hào)組成的碼塊,碼塊中的符號(hào)是交叉存放的,,然后再用(6,,4)編碼器C1去編碼。
  有關(guān)CIRC詳細(xì)的實(shí)現(xiàn)方法請參看文獻(xiàn)[7],。
  CIRC首先應(yīng)用在激光唱盤系統(tǒng)中,。音頻信號(hào)的采樣率為44.1 kHz,而每次采樣有兩個(gè)16比特的樣本,,一個(gè)來自左聲道,,一個(gè)來自右聲道,每個(gè)樣本用兩個(gè)GF(28)域中的符號(hào)表示,,因此每次采樣共有4個(gè)符號(hào),。
  為了糾正可能出現(xiàn)的錯(cuò)誤,每6次采樣共24個(gè)符號(hào)構(gòu)成1幀,,稱為F1幀(F1-Frame),。用一個(gè)稱為C2的編碼器對這24個(gè)符號(hào)產(chǎn)生4個(gè)Q校驗(yàn)符號(hào): Q0,,Q1,Q2和Q3,。24個(gè)聲音數(shù)據(jù)加上4個(gè)Q校驗(yàn)符號(hào)共28個(gè)符號(hào),,用稱為C1編碼器對這28個(gè)符號(hào)產(chǎn)生4個(gè)P校驗(yàn)符號(hào): P0,P1,,P2和P3。28個(gè)符號(hào)加上4個(gè)P校驗(yàn)符號(hào)共32個(gè)符號(hào)構(gòu)成的幀稱為F2幀(F2-Frame),。F2幀加上1個(gè)字節(jié)(即1個(gè)符號(hào))的子碼共33個(gè)符號(hào)構(gòu)成的幀稱為F3幀(F3-Frame),。
  在實(shí)際應(yīng)用中可對前面介紹的交插技術(shù)略加修改,執(zhí)行交插時(shí)不是交插包含有k個(gè)校驗(yàn)符的碼塊,,而是交插一個(gè)連續(xù)系列中的碼符,,這種交插技術(shù)稱為延時(shí)交插。延時(shí)交插之后還可用交叉技術(shù),,稱為延時(shí)交叉交插技術(shù),。CD存儲(chǔ)器中的CIRC編碼器采用了4×F1幀的延時(shí)交插方案。1幀延時(shí)交插可糾正連續(xù)4×F1幀的突發(fā)錯(cuò)誤,。4×F2幀的延時(shí)交插可糾正連續(xù)16×F1幀突發(fā)錯(cuò)誤,,相當(dāng)于大約14×F3幀的突發(fā)錯(cuò)誤。1×F3幀經(jīng)過EFM編碼后產(chǎn)生588位通道位,。1位通道位的長度折合成0.277μm的光道長度,。14×F3幀突發(fā)錯(cuò)誤長度相當(dāng)于
  [(16×(24+4))/33]×588×0.277≈2.2 mm
換句話說,,CIRC能糾正在2.2 mm光道上連續(xù)存放的448個(gè)錯(cuò)誤符號(hào)!相當(dāng)于連續(xù)224個(gè)漢字錯(cuò)誤可以得到糾正,。

13.4 RSPC碼

  按ISO/IEC10149的規(guī)定,CD-ROM扇區(qū)中的ECC碼采用GF(28)域上的RSPC碼產(chǎn)生172個(gè)字節(jié)的P校驗(yàn)符號(hào)和104個(gè)字節(jié)的Q校驗(yàn)符號(hào),。RS碼采用本原多項(xiàng)式
   P(x) = x8 + x4 +x3 + x2 + 1
和本原元
   α = (00000010)
構(gòu)造GF(28)域,,這已經(jīng)在上節(jié)作了介紹。
  第12章已經(jīng)介紹了CD-ROM的扇區(qū)結(jié)構(gòu),。在每個(gè)扇區(qū)中,,字節(jié)12~2075和ECC域中的字節(jié)2076到2351共2340個(gè)字節(jié)組成1170個(gè)字(word)。每個(gè)字s(n)由兩個(gè)字節(jié)B組成,,一個(gè)稱為最高有效位字節(jié)MSB,,另一個(gè)叫做最低有效位字節(jié)LSB。第n個(gè)字由下面的字節(jié)組成,,
  s(n) = MSB[B(2n + 13)] + LSB[B(2n + 12)]
其中n = 0,,1,2,,…,,1169,。
  從字節(jié)12開始到字節(jié)2075共2064個(gè)字節(jié)組成的數(shù)據(jù)塊排列成24×43的矩陣,如圖13-02所示,。

 


             

NP

   
   

0

1

2

3

   

41

42

 

 

0

000

0001

0002

0041

0042

 
 

1

0043

0044

0045

0084

0085

HEADER

 

2

0086

0087

0088

0127

0128

+

   

P

     

Q

     

用戶數(shù)據(jù)

 

                 

MP

22

0946

0947

0948

0987

0988

部分輔助數(shù)據(jù)

 

23

0989

0990

0991

1030

1031

 
 

24

1032

1033

1034

     

1073

1074

P-校驗(yàn)

 

25

1075

1076

1077

1116

1117

 
 

26

1118

1119

1120

1143

     

Q-校驗(yàn)

 

27

1144

1145

1146

1169

       
   

0

1

2

25

     

(ISO /IEC1049)

圖13-02 RSPC碼計(jì)算用數(shù)據(jù)陣列

  矩陣中的元素是字,。這個(gè)矩陣要把它想象成兩個(gè)獨(dú)立的矩陣才比較好理解和分析,一個(gè)是由MSB字節(jié)組成的24×43矩陣,,另一個(gè)是由LSB字節(jié)組成的24×43矩陣,。
  (1) P校驗(yàn)符號(hào)用(26,24)RS碼產(chǎn)生
  43列的每一列用矢量表示,,記為Vp,。每列有24個(gè)字節(jié)的數(shù)據(jù)再加2個(gè)字節(jié)的P校驗(yàn)字節(jié),用下式表示:
   
其中:
   Np =  0,,1,,2,……,,42
   Mp =  0,,1,2,,……,,25
   s(43*24+Np)和s(43*25+Np)是P校驗(yàn)字節(jié)
  對這列字節(jié)計(jì)算得到的是兩個(gè)P校驗(yàn)字節(jié),稱為P校驗(yàn)符號(hào),。兩個(gè)P校驗(yàn)字節(jié)加到24行和25行的對應(yīng)列上,,這樣構(gòu)成了一個(gè)26×43的矩陣,并且滿足方程
   Hp × Vp = 0
  其中HP校驗(yàn)矩陣為
   
  (2) Q校驗(yàn)符號(hào)用(45,,43)RS碼產(chǎn)生
  增加P校驗(yàn)字節(jié)之后得到了一個(gè)26×43矩陣,,該矩陣的對角線元素重新排列后得到一個(gè)新的矩陣,其結(jié)構(gòu)如圖13-03所示,。

 

               

MQ

   
   

0

1

2

   

40

41

42

Q0

Q1

 

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

(ISO/IEC 10149∶1989)
圖13-03 Q校驗(yàn)符號(hào)計(jì)算用數(shù)據(jù)陣列

  每條對角線上的43個(gè)MSB字節(jié)和LSB字節(jié)組成的矢量記為VQ,。VQ在26×43矩陣中變成行矢量。第NQ行上的VQ矢量包含的字節(jié)如下:
    
其中:
   NQ = 0,,1,,2,…,,25
   MQ = 0,,1,2,,…,,42
  s(43*26+Nq)和s(44*25+Nq )和是Q校驗(yàn)字節(jié)
  VQ中的(44*MQ+43*NQ)字節(jié)號(hào)運(yùn)算結(jié)果要做mod(1118)運(yùn)算。用(45,,43)RS碼產(chǎn)生的兩個(gè)Q校驗(yàn)字節(jié)放到對應(yīng)VQ矢量的末端,,并且滿足下面的方程:
   HQ × VQ = 0
其中HQ校驗(yàn)矩陣為
   
  (26,,24)RS碼和(45,43)RS碼可以糾正出現(xiàn)在任何一行和任何一列上的一個(gè)錯(cuò)誤,,并且能相當(dāng)可靠地檢測出行,、列中的多重錯(cuò)誤。如果在一個(gè)陣列中出現(xiàn)多重錯(cuò)誤,,Reference Technology公司提供有一種名叫Layered ECC的算法,,它可以取消多重錯(cuò)誤。它的核心思想是交替執(zhí)行行糾錯(cuò)和列糾錯(cuò),。
  例如,,假設(shè)錯(cuò)誤分布如圖13-04所示。ECC算法首先計(jì)算MSB矩陣和LSB矩陣中每一行的校正子Sri(i = 0,,1,,…,,25),,以及每一列的校正子Scj(j = 0,1,,…,,44)。因?yàn)橛?45,,43)RS碼,,所以每一個(gè)Sri和每一個(gè)Scj都有兩個(gè)校正子分量。如果Sri = 0,,則說明第i行無錯(cuò),;如Scj = 0,說明第j行無錯(cuò),。


圖13-04 錯(cuò)碼分布舉例

  ECC算法首先糾正行1,、3、17,、19和22上分別只有一個(gè)的錯(cuò)誤,。這些錯(cuò)誤取消后就糾正列5、9,、15和35上分別只有一個(gè)的錯(cuò)誤,。經(jīng)過一次行列交替糾錯(cuò)后,只剩下C4,,25,、C7,20,、C7,,25和C9,,20這四個(gè)錯(cuò)誤。再進(jìn)行一次行列交替糾錯(cuò)后,,就可以消除全部錯(cuò)誤,。
  對于象下面這樣分布的錯(cuò)誤,ECC算法也可以糾正,。
   
  因?yàn)镽S碼糾錯(cuò)算法本身包含找錯(cuò)誤的位置和錯(cuò)誤值,,而錯(cuò)誤位置已經(jīng)由校正子Sr(i-k)、Sri,、Sr(i+m)和Scj,、Sc(j+l)確定,所以只剩下求錯(cuò)誤值的問題,。這個(gè)問題在討論RS碼時(shí)已經(jīng)解決,。
  對CD-ROM存儲(chǔ)器的數(shù)據(jù),經(jīng)CIRC校正后可以使以字節(jié)做單位的誤碼率小于10-9,,再經(jīng)RSPC進(jìn)行糾錯(cuò)后,,字節(jié)誤碼率可以小于10-13,這樣就滿足了計(jì)算機(jī)要求誤碼率小于10-12的要求,。

練習(xí)與思考題

  1. CRC用于檢測錯(cuò)誤還是校正錯(cuò)誤,?
  2. 用自己的語言說明錯(cuò)誤檢測的思想。
  3. 什么叫做突發(fā)錯(cuò)誤,?
  4. 碼塊長度為n,,碼塊中的信息長度為k,問(n,,k)RS碼本身能糾正多少個(gè)錯(cuò)誤,?
  5. 要糾正1個(gè)符號(hào)的錯(cuò)誤,至少需要附加多少個(gè)校驗(yàn)符,?
  6. 目前CD存儲(chǔ)器中使用的CIRC編碼技術(shù)能夠糾正突發(fā)錯(cuò)誤的最大長度是多少(按漢字字符數(shù)估算),?
參考文獻(xiàn)和站點(diǎn)
  • 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.
  • 林福宗, 陸 達(dá). 多媒體與CD-ROM. 北京:清華大學(xué)出版社, 1995.3.

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多