當前位置:首頁 > 消費電子 > 消費電子
[導讀]介紹應用于嵌入式系統(tǒng)的CD-ROM格式數(shù)據(jù)軟解碼模塊的設計方法。

摘要:介紹應用于嵌入式系統(tǒng)的CD-ROM格式數(shù)據(jù)軟解碼模塊的設計方法;分析CD-ROM格式的數(shù)據(jù)結(jié)構(gòu),給出EDC及ECC解碼算法的軟件實現(xiàn)方法以及該模塊的軟件流程圖。

    關鍵詞:CD-ROM格式 軟解碼 EDC檢錯 ECC糾錯

引言

CD-ROM是目前應用非常廣泛的大容量、低成本的存儲設備。為了減小誤碼率,原始數(shù)據(jù)經(jīng)過格式化編碼和信道編碼后,才寫入CD-ROM盤片中;在讀取時,則需經(jīng)過信道解碼和格式化解碼后才能得到所需的原始數(shù)據(jù)。CD-ROM數(shù)據(jù)的讀寫過程如圖1所示。

在一般的音像設備(如VCD機)和個人電腦中,CD-ROM數(shù)據(jù)的解碼過程是由專用解碼芯片來完成的;而CD-ROM不但可以應用在音像設備和個人電腦中,還可以應用到需要讀取大量數(shù)據(jù)的嵌入式系統(tǒng)中。比如在車輛導般系統(tǒng)中,就可使用CD-ROM存放地理信息數(shù)據(jù)。嵌入式系統(tǒng)中的CD-ROM數(shù)據(jù)的解碼方法比較靈活,可以使用專用解碼芯片(暫稱硬解碼),也可以通過處理器的解碼程序來完成(軟解碼)。相對于硬解碼來說,軟解碼有其獨特的優(yōu)點所在。因為它只需增加一個解碼程序模塊,就省掉了專用解碼芯片電路,簡化了系統(tǒng)的硬件電路,降低了系統(tǒng)的成本。如圖1所示,CD-ROM數(shù)據(jù)經(jīng)過信道解碼后,得到的是以扇區(qū)結(jié)構(gòu)組織的CD-ROM格式數(shù)據(jù),還需進行CD-ROM格式化解碼才能得到最終的用戶數(shù)據(jù)。本文介紹的就是嵌入式系統(tǒng)中CD-ROM格式數(shù)據(jù)軟解碼模塊的設計。

1 CD-ROM格式數(shù)據(jù)的扇區(qū)結(jié)構(gòu)

CD-ROM數(shù)據(jù)是以扇區(qū)為基本單元進行編碼處理的。經(jīng)過信道解碼處理后得到的扇區(qū)對于不同的數(shù)據(jù)來源,其結(jié)構(gòu)是不同的。對于CD-DA(雙聲道的CD音頻)數(shù)據(jù),由于沒有經(jīng)過格式化編碼,可以直接得到用戶數(shù)據(jù);而CD-ROM數(shù)據(jù)和VCD數(shù)據(jù)都經(jīng)過CD-ROM格式化編碼成扇區(qū)結(jié)構(gòu),必須經(jīng)CD-ROM格式化解碼才能得到用戶數(shù)據(jù)。

CD-ROM扇區(qū)有兩種模式:模式1和模式2。其扇區(qū)結(jié)構(gòu)如圖2所示。

由圖2可知,一個扇區(qū)的CD-ROM格式數(shù)據(jù)總共有2352字節(jié)。其中,兩種扇區(qū)模式都有12字節(jié)的同步信息和4字節(jié)的時間信息(頭信息)。如果是模式1,還有4字節(jié)的循環(huán)冗檢錯碼,8字節(jié)空字節(jié),276字節(jié)的糾錯碼,其中包含172字節(jié)的P校驗字和104字節(jié)的Q校驗字,用戶數(shù)據(jù)只有2048字節(jié)。如果是模式2,除了同步信息和頭信息外,余下的2336字節(jié)全部都是用戶數(shù)據(jù)。

    實際中,由于盤的制作材料的性能、盤制造生產(chǎn)技術(shù)水平的限制、驅(qū)動器的性能以及使用不當?shù)戎T多原因,從盤上讀出的數(shù)據(jù)不可能完全正確。據(jù)統(tǒng)計,一片未使用過的只讀光盤,原始誤碼率約為3×10 -4,沾有指紋的盤約為6×10 -4,有傷痕的盤約為5×10 -3。針對這種情況,光盤存儲系統(tǒng)采用了功能強大的錯誤檢測和糾正措施:CIRC、EDC、ECC。數(shù)據(jù)經(jīng)信道解碼后,由于采用CIRC糾錯處理,誤碼率由10 -4~10 -5降到10 -9以下。對于音頻和圖像數(shù)據(jù)來說,這樣的誤碼率已經(jīng)足夠。但要用到計算機文件數(shù)據(jù),必須要求誤碼率為10 -12以下,因此必須采用二次糾錯處理。通過EDC和ECC校驗,可以達到這個要求。

所以,模式1主要用于存儲對錯誤非常敏感的數(shù)據(jù),如計算機程序代碼等數(shù)據(jù);而模式2則主要用于存儲對錯誤不敏感的數(shù)據(jù),如圖像、音響等類型的數(shù)據(jù)。

在模式2的基礎上,CD-ROM/XA格式又分為兩種形式(FORM):形式1和形式2。其扇區(qū)結(jié)構(gòu)如圖3所示。我們常用的VCD就是采用CD-ROM/XA的形式2格式。

由上可知,除了扇區(qū)模式2可以直接得到2336字節(jié)的用戶數(shù)據(jù)外,CD-ROM格式解碼還必須進行EDC檢錯和ECC糾錯處理。下面分別介紹EDC檢錯和ECC糾錯的原理和解碼算法。

2 CD-ROM扇區(qū)中的EDC檢錯原理及算法

CD-ROM扇區(qū)采用32位CRC(循環(huán)冗余校驗碼)檢錯碼,其生成多項式為

P(X)=(X 16+X 15+X 2+1)×(X 16+X 2+X+1)

對應的碼字是0x18001801B。計算CRC碼時用的數(shù)據(jù)塊是從扇區(qū)的開頭到用戶數(shù)據(jù)區(qū)結(jié)束為止的數(shù)據(jù)字節(jié)。即將字節(jié)0~2063共2064字節(jié)的數(shù)據(jù)所對應的長多項式整除P(X),得到32位的余式,放在2064~2067字節(jié)位置。這2068字節(jié)的數(shù)據(jù)對應的多項式是能夠被生成多項式P(X)整除的。如果不能整除,則表明數(shù)據(jù)有錯。所以,我們的解碼過程就將2068字節(jié)的數(shù)據(jù)組成的多項式來整除生成多項式,如果余式為0,則表明數(shù)據(jù)正確,否則數(shù)據(jù)有錯。

但我們不可能直接進行長除法操作,因為計算機不可能將一個2068×8位的極其長的二進制數(shù)直接拿來做長除法。根據(jù)長除法的規(guī)律,以字節(jié)(8比特)為單位進行操作,每次除法將上一字節(jié)的所得的余數(shù)與本字節(jié)組合成新的數(shù)進行除法運算。除式是33位的,因此,每個字節(jié)的除法須把這個字節(jié)的數(shù)左移24位,跟上次的余式組合成一個32位的二進制數(shù),來整除除式。主要實現(xiàn)現(xiàn)代碼如下:

for(i=0;i<2068;i++)

crc=edc_crc_32(crc,data_in[i],M32);

其中,crc為余數(shù),M32為生成多項式對應的二進制數(shù)。函數(shù)edc_crc_32(int crc,int ch,int mask)的實現(xiàn)代碼為

char edc_crc_32(int crc,int int mask){

ch<<24;

for(int i=0;i<8;i++){

if(crc^ch)&0x80000000)

crc=(crc<<1)^mask;

else

crc<<=1;

ch<<=1;

}

return crc;

}

由以上代碼可知,每個字節(jié)的求余要進行8次移位和8次異或運算,對于ch值相同的數(shù)據(jù)來說,這種運算是完全的重復;對于大量的CD-ROM數(shù)據(jù)來說,是對資源的一種很大的浪費。因此,為了提高效率,可以把256個8位二進制數(shù)對應的余式做成表,在程序運行之前先把表讀入內(nèi)存。通過查表的方式將極大的提高代碼的效率。代碼如下:

for(int i=0;i<2068;i++){

temp=data_in[i]^(crc>>24));

crc=(crc<<8)^crctable[temp];

}

這種方式除了數(shù)據(jù)表需要占用內(nèi)存外,運算效率理論上可以提高8位。實際上是用較少的內(nèi)存空間換取了效率的極大提高。這在嵌入式系統(tǒng)中是很有應用價值的。

3 CD-ROM扇區(qū)中的ECC糾錯原理及算法

CD-ROM扇區(qū)中的ECC碼,按ISO/IEC10149的規(guī)范,采用GF(2 8)域上的RSPC碼產(chǎn)生172字節(jié)的P校驗符合和104字節(jié)的Q校驗符號。RS碼采用本原多項式

P(x)=x 8+x 4+x 3+x 2+1

和本原元

α=(0 0 0 0 0 0 1 0)

構(gòu)造GF(2 8)中的256個元素。

P校驗和Q校驗字的生成方法如圖4所示。每個扇區(qū)中,字節(jié)12~2075和ECC域中的字節(jié)2076~2351共2340個字節(jié),組成1170個字(word)。每個字S由兩個字節(jié)B組成,分別為最高有效位字節(jié)MSB和最低有效位字節(jié)LSB。第n個字由個面的字節(jié)組成:

S(n)=MSB[B(2n+13)]+LSB[B(2n+12)]

其中n=0,1,2,…,1169。

從字節(jié)12到2075共2064個字節(jié)組成的數(shù)據(jù)塊排列成24×43的矩陣,可以看成是由一個MSB字節(jié)組成的24×43矩陣和由一個LSB字節(jié)組成的24×43矩陣。

P校驗符號用(26,24)RS碼產(chǎn)生。43列的每一列24個字節(jié)數(shù)據(jù)再加24行和25行對應的列上2個字節(jié)的P校驗字節(jié),構(gòu)成列矢量Vp。這樣構(gòu)成了26×43的矩陣,并且滿足方程

增加P校驗后,得到了一個26×43矩陣,該矩陣對角線元素重新排列得到一個新的26×43矩陣,新矩陣的每行用(45,43)RS碼產(chǎn)生兩個Q校驗字節(jié)放到末端。設為VQ矢量,滿足以下方程

HQ×VQ=0

其中校驗矩陣為

RS碼錯誤糾正過程分三步:①計算校正子;②計算錯誤位置;③計算錯誤值。

傳統(tǒng)的ECC算法有迭代算法和大數(shù)邏輯譯碼算法,涉及到復雜的矩陣運算及較多的數(shù)學知識,而且程序?qū)崿F(xiàn)也很復雜。具體到我們的實際情況,我們發(fā)現(xiàn)無論是(26,24)RS還是(45,43)RS,都只有兩字節(jié)的校驗位,完全可以通過直接解二元一次方程組解決,因此可采用比較簡單的算法。

設校驗位為Q1和Q2,校正子計算如下(以(26,24)RS碼為例):

如果得到S0和S1不全為0,則可斷定數(shù)據(jù)有錯誤。如果只有個錯誤,設錯誤值為mx,錯誤位為a x,可通過解下述方程組求得錯誤位置和錯誤值。

注意:解方程過程中的加、減、乘、除運算都是在GF(2 8)域上進行的,編程的時候必須對這些運算進行特殊定義。

如果計算得到的S0=0,S1≠0,則基本上可斷定至少有兩個錯誤。出現(xiàn)多重錯誤時,單獨的行內(nèi)和列內(nèi)的糾錯是無能為力的,但將陣列作為一個整體來考慮,有些多重錯誤還是可以糾正的。Reference Technology公司提供有一種名為Layered ECC的算法,可以取消多重錯誤,其核心思想是交替執(zhí)行行糾錯和列糾錯。因為同一行的多重錯誤從列的角度看可能是該列的一個錯誤,可以先進行該列的糾錯,然后再從行的角度看,可以變成單個的錯誤了,從而可以糾正過來。

(26,24)RS碼和(45,43)RS碼都可以糾正出現(xiàn)任何一行和任何一列上的一個錯誤,并能相當可靠的檢測出行、列中的多得錯誤。實際中出現(xiàn)個錯誤的概率是遠遠大于出現(xiàn)多個錯誤的概率的。因此,EDC碼字的檢錯能力是非常強大的。

4 CD-ROM格式解碼程序流程圖

本數(shù)據(jù)處理模塊主程序流程如圖5所示。通過檢測同步字從數(shù)據(jù)流中獲取完整的一幀數(shù)據(jù),再通過扇區(qū)的第16個字節(jié)的頭信息獲取扇區(qū)模式,然后根據(jù)模式的不同,作不同的處理。如果是模式2,則可直接得到2336字節(jié)的用戶數(shù)據(jù),有必要的話進行CD-ROM/XA格式處理:若是扇區(qū)模式1,需進行EDC檢錯處理,如果無錯,可取出2048字節(jié)的用戶數(shù)據(jù);如果有錯,則進行ECC糾錯處理:如果糾錯成功,則直接取出2048字節(jié)的用戶數(shù)據(jù)。如果錯誤太多,糾正不了,則報告錯誤信息。

對于CD-ROM/XA格式,可以根據(jù)基子模式(即模式2的形式)進行相應的處理。對于形式2,進行EDC檢錯,可得到2324字節(jié)的用戶數(shù)據(jù);而對于形式1,可做類似于模式1的處理,即進行EDC檢錯和ECC糾錯后,得到2048字節(jié)的用戶數(shù)據(jù)。

當本程序模塊應用到具體的應用系統(tǒng)時,將以系統(tǒng)子程序的形式出現(xiàn)。

結(jié)語

在嵌入式系統(tǒng)中,數(shù)據(jù)解碼的實現(xiàn)方法應該根據(jù)具體應用的特點和要求靈活選擇。本文介紹了通過軟件方式進行CD-ROM格式解碼的實現(xiàn)方法,對使用CD-ROM的嵌入式系統(tǒng),很好的應用價值。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術(shù)
關閉
關閉