欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用來解碼錯誤更正碼方塊的方法及其相關(guān)裝置的制作方法

文檔序號:7539608閱讀:230來源:國知局
專利名稱:用來解碼錯誤更正碼方塊的方法及其相關(guān)裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明提供一種解碼方法以及相關(guān)的解碼裝置,尤指一種用來對一錯誤更正碼方塊進(jìn)行解碼的解碼方法以及其相關(guān)解碼裝置。
背景技術(shù)
由于DVD盤片具有輕巧的體積以及大量的儲存空間,使得DVD盤片成為現(xiàn)在人們大量使用的儲存媒體。一般來說,當(dāng)使用者要使用儲存于DVD盤片的數(shù)據(jù)時,會先從DVD中讀取盤片數(shù)據(jù)。由于從DVD讀取出來的盤片數(shù)據(jù)可能具有很多錯誤,并且DVD盤片數(shù)據(jù)是由原始數(shù)據(jù)經(jīng)過8對14調(diào)制而產(chǎn)生,因此必須先利用EFM+解調(diào)器對讀取出來的盤片數(shù)據(jù)進(jìn)行解調(diào)以形成列數(shù)據(jù)(row data)。如前所述,由于讀取出來的盤片數(shù)據(jù)會具有一些錯誤,這也代表了列數(shù)據(jù)中也包含有一些錯誤。
因此,每個列數(shù)據(jù)都會先儲存于一個存儲器緩沖器;而當(dāng)儲存于緩沖器的列數(shù)據(jù)足夠時,列數(shù)據(jù)便會形成一個完整的錯誤更正碼方塊(errorcorrection code block,ECC block),接著錯誤更正碼方塊便會經(jīng)過理德所邏門乘積碼(Reed Soloman Product Code,RSPC)解碼以更正列數(shù)據(jù)上的錯誤,進(jìn)而得到最初的原始數(shù)據(jù)。
在此請參閱圖1,圖1為錯誤更正碼方塊100的示意圖。如圖1所示,錯誤更正碼方塊100包含有208列(rows)與192行(columns),其中每一列可以稱為一個PI字碼(codeword),并且每一行可以稱為一個PO字碼。此外,208列中的前192列是由對DVD盤片數(shù)據(jù)進(jìn)行編碼而產(chǎn)生,而208列中的后16列為外部校正碼(outer-code parity,PO)數(shù)據(jù),其用來校正PO字碼上面的錯誤數(shù)據(jù)。相同地,192行中的前182行是由對DVD盤片數(shù)據(jù)進(jìn)行編碼而產(chǎn)生,而192行中的后10行為內(nèi)部校正碼(inner-code parity,PI)數(shù)據(jù),其用來校正PI字碼上面的錯誤數(shù)據(jù)。
如前所述,為了更正錯誤更正碼方塊100上所包含的錯誤數(shù)據(jù),我們會對錯誤更正碼方塊100進(jìn)行解碼,這些更正錯誤數(shù)據(jù)的詳細(xì)操作將在以下的揭露中陳述。
請參閱圖2,圖2為解碼裝置200的示意圖。解碼裝置200包含有一存儲器緩沖器210,用來儲存前述的錯誤更正碼方塊100;一與該存儲器緩沖器210耦接的征狀值(syndrome)計算裝置220,用來計算每個字碼的征狀值;一錯誤更正裝置230,耦接于該存儲器緩沖器210以及該征狀值計算裝置220,用來更正儲存于存儲器緩沖器210中每個字碼上的錯誤數(shù)據(jù);以及一控制器240,耦接于該錯誤更正裝置230以及該征狀值計算裝置220,用來控制整個解碼裝置200的運(yùn)作。此外,解碼裝置200的詳細(xì)功能與運(yùn)作將于下文詳述。
在此請參閱圖3,圖3為利用圖2所示的解碼裝置200來更正錯誤更正碼方塊100上錯誤數(shù)據(jù)的流程圖。其包含有下列步驟步驟300開始;步驟302對所有的PI字碼進(jìn)行解碼操作;步驟304對所有的PO字碼進(jìn)行解碼操作;步驟306如果所有的PI與PO字碼都已可解碼,則接至步驟312;否則,接至步驟308;步驟308計算反復(fù)解碼PI/PO字碼的次數(shù),若該次數(shù)大于一預(yù)設(shè)值,則接至步驟310;否則,接至步驟302;步驟310解碼失??;步驟312解碼完成。
首先,解碼裝置200開始對錯誤更正碼方塊100進(jìn)行解碼(步驟302)。接著,解碼裝置200開始對每個PI字碼進(jìn)行PI解碼操作,以更正PI字碼上的錯誤數(shù)據(jù)?,F(xiàn)在以PI解碼操作為例子加以說明,首先,PI解碼操作會先運(yùn)作于列數(shù)據(jù)1(第一個PI字碼)上,這代表征狀值計算裝置220會從存儲器緩沖器210讀取列數(shù)據(jù)1并且計算列數(shù)據(jù)1的征狀值。如業(yè)界所已知,征狀值計算裝置220會利用一多項(xiàng)式來計算列數(shù)據(jù)1的征狀值;此外,若計算出來的征狀值等于0,這代表列數(shù)據(jù)1為一可解碼數(shù)據(jù),或稱列數(shù)據(jù)1為無錯誤數(shù)據(jù);另一方面,如果計算出來的征狀值不等于0,這代表了列數(shù)據(jù)1必須經(jīng)過更正。因此,錯誤更正裝置230會接收計算出來的征狀值,并且利用該征狀值來計算錯誤位置與對應(yīng)錯誤位置的錯誤值,接著錯誤更正裝置230會根據(jù)錯誤位置以從存儲器緩沖器210讀取錯誤數(shù)據(jù),并且將錯誤值與錯誤數(shù)據(jù)進(jìn)行一異或(XOR)運(yùn)算,以更正錯誤。
很明顯地,經(jīng)由上述的錯誤更正操作可以對列數(shù)據(jù)1上的一些錯誤進(jìn)行更正。此外,相同的錯誤更正操作也會在列數(shù)據(jù)2上執(zhí)行,即,列數(shù)據(jù)2上的錯誤更正操作也包含計算列數(shù)據(jù)2的征狀值,決定列數(shù)據(jù)2的錯誤值以及錯誤位置,根據(jù)錯誤值與錯誤位置來更正列數(shù)據(jù)2上的一些錯誤數(shù)據(jù)。對于整體PI字碼的解碼操作而言,這樣的錯誤更正操作會依此類推地于列數(shù)據(jù)3、4、...、至列數(shù)據(jù)208。因此,在對所有PI字碼執(zhí)行PI解碼操作之后,錯誤更正碼方塊的一些錯誤便可以由此更正。
在此請注意,由于PI解碼的錯誤更正機(jī)制有其限制,舉例來說,對于每個PI字碼來說,一次的錯誤更正解碼可能只能更正幾個錯誤,因此,在整個PI解碼操作完成之后,可能還是會有一些錯誤存在于錯誤更正碼方塊之中。所以,在執(zhí)行過PI解碼之后,接著便須執(zhí)行PO解碼。
相同地,每個PO字碼的錯誤也是經(jīng)由類似上述的解碼操作更正(步驟304)。PO解碼操作包含有計算一PO字碼(行數(shù)據(jù))的征狀值,根據(jù)計算出來的征狀值計算出錯誤位置與錯誤值,根據(jù)錯誤值與錯誤位置來更正PO字碼上的一些錯誤數(shù)據(jù)。相同地,這樣的PO解碼操作也是循序的一行行執(zhí)行于行數(shù)據(jù)1至行數(shù)據(jù)172。很明顯地,在步驟302與步驟304之后,錯誤更正碼方塊100中有部分的錯誤已經(jīng)更正了,因此,理論上只須反復(fù)的執(zhí)行302與步驟304,便可以更正錯誤更正碼方塊100內(nèi)所有的錯誤數(shù)據(jù)。
但是,在此請注意,如果ECC方塊100內(nèi)包含了太多的錯誤數(shù)據(jù),以致PI/PO數(shù)據(jù)沒有辦法將DVD的原始數(shù)據(jù)還原,因此在本例中,控制器240會計算步驟302與304執(zhí)行的次數(shù)(步驟306),并且當(dāng)重復(fù)執(zhí)行的次數(shù)大于一預(yù)設(shè)值時,控制器240便會認(rèn)定ECC方塊100是沒有辦法解碼的,也即前述ECC方塊100具有過多的錯誤數(shù)據(jù)。舉例來說,當(dāng)反復(fù)執(zhí)行的次數(shù)大于該預(yù)設(shè)值時,控制器240會認(rèn)定整體的解碼操作失敗(步驟310);另一方面,若反復(fù)執(zhí)行的次數(shù)仍小于該預(yù)設(shè)值,解碼裝置200便會反復(fù)的執(zhí)行步驟302與304,直至ECC方塊100中所有的錯誤都被更正,亦即ECC方塊100可解碼,以及DVD的原始數(shù)據(jù)可以還原為止(步驟312)。
然而,前述的解碼操作有一些效能上的問題。舉例來說,當(dāng)每一次執(zhí)行PI/PO解碼操作,不管已知一特定字碼的征狀值等于0,都必須要計算所有PI/PO字碼的征狀值。換句話說,這種反復(fù)計算征狀值的解碼方式會消耗掉大量的系統(tǒng)資源,并且進(jìn)而使得解碼操作效率降低。

發(fā)明內(nèi)容
因此本發(fā)明的主要目的之一在于提供一種對一錯誤更正碼方塊進(jìn)行解碼的解碼方法以及其相關(guān)解碼裝置,以解決現(xiàn)有技術(shù)中的問題。
根據(jù)本發(fā)明一較佳實(shí)施例,是揭露一種用來解碼一錯誤更正碼方塊(error correction code block,ECC block)的方法,該方法包含有提供復(fù)數(shù)個旗標(biāo),其中每個旗標(biāo)是用來將該錯誤更正碼方塊的至少一數(shù)據(jù)線標(biāo)示為一無錯誤數(shù)據(jù)線;以及偵測對應(yīng)一特定數(shù)據(jù)線的一旗標(biāo)是否已經(jīng)被設(shè)定(asserted),如果該旗標(biāo)已經(jīng)被設(shè)定,則略過該特定數(shù)據(jù)線的一征狀值(syndrome)的計算。
根據(jù)本發(fā)明的另一較佳實(shí)施例,其揭露一種用來解碼一錯誤更正碼方塊(error correction code block,ECC block)的解碼裝置,該解碼裝置包含有一儲存裝置,用來儲存該錯誤更正碼方塊以及復(fù)數(shù)個旗標(biāo),其中每個旗標(biāo)是用來將該錯誤更正碼方塊至少一數(shù)據(jù)線標(biāo)示為一無錯誤數(shù)據(jù)線;一征狀值計算裝置;以及一控制器,電連接至該儲存裝置以及該征狀值計算裝置,用來偵測對應(yīng)一特定數(shù)據(jù)線的一旗標(biāo)是否已經(jīng)被設(shè)定,如果該旗標(biāo)已經(jīng)被設(shè)定,則控制該征狀值計算裝置以略過該特定數(shù)據(jù)線的一征狀值(syndrome)的計算。
本發(fā)明可以避免對無錯誤字碼反復(fù)進(jìn)行征狀值計算的操作。如此可以節(jié)省解碼操作的執(zhí)行時間以及系統(tǒng)資源。換句話說,比起已知的解碼方式,本發(fā)明不但提供一個更有效率的解碼方式,而且此解碼方式只須消耗更少的系統(tǒng)資源。


圖1為現(xiàn)有技術(shù)錯誤更正碼方塊的示意圖。
圖2為現(xiàn)有技術(shù)解碼裝置的示意圖。
圖3為利用圖2所示的解碼裝置來更正圖1的錯誤更正碼方塊上錯誤數(shù)據(jù)的流程圖。
圖4為本發(fā)明解碼裝置的示意圖。
圖5為本發(fā)明錯誤更正碼方塊的示意圖。
圖6A以及圖6B為本發(fā)明PI解碼操作的流程圖。
圖7A與圖7B為本發(fā)明PO解碼操作的流程圖。
圖8為本發(fā)明更正圖5所示的ECC方塊另一實(shí)施例的方法流程圖。
圖9A與圖9B為對應(yīng)圖8所示的解碼流程的PI解碼的流程圖。
圖10A與圖10B為對應(yīng)圖8所示的解碼流程的PO解碼的流程圖。
主要組件符號說明錯誤更正碼方塊 100、500 解碼裝置 200、400存儲器緩沖器210、410征狀值計算裝置220、420錯誤更正裝置230、440控制器240、450旗標(biāo)設(shè)定電路430
具體實(shí)施例方式
請參閱圖4,圖4為本發(fā)明解碼裝置400的示意圖。如圖4所示,解碼裝置400包含一存儲器緩沖器410,一征狀值計算裝置420,一旗標(biāo)設(shè)定電路430,一錯誤更正裝置440,以及一控制器450。其中,控制器450耦接于征狀值計算裝置420、旗標(biāo)設(shè)定電路430以及錯誤更正裝置440。存儲器緩沖器410耦接至征狀值計算裝置420以及錯誤更正裝置440。此外,錯誤更正裝置440耦接至征狀值計算裝置420以及旗標(biāo)設(shè)定電路430。以及征狀值計算裝置420耦接至旗標(biāo)設(shè)定電路430。在本實(shí)施例中,存儲器緩沖器410、征狀值計算裝置420、錯誤更正裝置440大體上與前述的解碼裝置200中的各項(xiàng)同名組件具有相同的結(jié)構(gòu)與操作。而解碼裝置400中其它組件的功能與操作將于以下的揭露中陳述。
在此請參閱圖5,圖5為本發(fā)明錯誤更正碼方塊500的示意圖。如圖5所示,ECC方塊500與前述的ECC方塊100類似。兩者的差別在于ECC方塊500另包含有復(fù)數(shù)個旗標(biāo)。在此請注意,在本實(shí)施例中,旗標(biāo)可以是一個1位的寄存器(register),其用來標(biāo)示一個特定字碼的狀況,前述的旗標(biāo)可以儲存于存儲器中或是寄存器中。
舉例來說,在解碼錯誤更正碼方塊500的操作之中,如前所述,必須對一特定字碼進(jìn)行計算以得出征狀值,以及如果計算出來的征狀值等于0,這代表了該特定字碼理論上應(yīng)為一無錯誤字碼。因此,在本發(fā)明中,如果計算出來的征狀值等于0,旗標(biāo)設(shè)定電路430便會設(shè)定該特定字碼所對應(yīng)的旗標(biāo)。如此一來,控制器450便可根據(jù)旗標(biāo)來對整體的解碼裝置400進(jìn)行控制,以決定是否要對該特定字碼進(jìn)行解碼,亦即對該特定字碼進(jìn)行解碼操作或略過該特定字碼的解碼操作。換句話說,若旗標(biāo)已經(jīng)被設(shè)定,則該旗標(biāo)所對應(yīng)的字碼就會被視為無錯誤字碼,因此本發(fā)明解碼裝置400便可以省略對無錯誤的字碼進(jìn)行的重復(fù)解碼操作。也就是說,本發(fā)明解碼裝置400僅僅只處理那些未設(shè)定旗標(biāo)的字碼,也就是那些可能具有錯誤的字碼。很明顯地,這樣的做法可以提升整體的解碼效率。
如圖5所示,ECC方塊500具有復(fù)數(shù)個錯誤,圖中以X標(biāo)示。此外,具有錯誤的字碼會與沒有設(shè)定的旗標(biāo)對應(yīng),這代表這些字碼中包含有一些錯誤。因此,控制器450便可以根據(jù)這些旗標(biāo)來控制解碼裝置400。
請參閱圖6A以及圖6B。圖6A以及圖6B為PI解碼操作的流程圖。其包含有下列步驟步驟600開始;步驟602偵測目前正在執(zhí)行的解碼操作是否為一重復(fù)的解碼操作?如果目前正在執(zhí)行的解碼操作為一重復(fù)的解碼操作,則接至步驟604;否則,接至步驟608;步驟604讀取對應(yīng)列數(shù)據(jù)i的旗標(biāo);步驟606偵測旗標(biāo)是否已經(jīng)被設(shè)定(asserted)?若是,則接至步驟622否則接至步驟608;步驟608計算列數(shù)據(jù)i的征狀值;步驟610偵測計算出來的征狀值是否為0?若計算出來的征狀值等于0,則接至步驟618;否則接至步驟612;步驟612更正列數(shù)據(jù)i上的錯誤;步驟616偵測列數(shù)據(jù)i是否已可解碼?若列數(shù)據(jù)i已可解碼,則接至步驟618;否則接至步驟620;步驟618設(shè)定(assert)列數(shù)據(jù)i的旗標(biāo),并且接至步驟614;步驟614重設(shè)(deassert)行數(shù)據(jù)j的旗標(biāo),其中錯誤是位于坐標(biāo)(i,j)上,接著接至步驟622;步驟620重設(shè)列數(shù)據(jù)i的旗標(biāo);步驟622是否所有列數(shù)據(jù)都可解碼?如果所有列數(shù)據(jù)都可解碼,則接至步驟626;否則,接至步驟624;步驟624定義i=i+1,接著回到步驟602;
步驟626結(jié)束。
首先,PI解碼操作開始(步驟600)??刂破?50偵測目前正在執(zhí)行的PI解碼操作是否為一重復(fù)解碼操作(步驟602),由于所有的旗標(biāo)在第一次PI解碼操作后便會被設(shè)定(亦即設(shè)定為1)或被重設(shè)(亦即設(shè)定為0),這代表每一個旗標(biāo)都可用來標(biāo)示每個字碼現(xiàn)在的狀態(tài)。
因此,如果目前PI解碼操作為第一次的PI解碼操作,控制器450會直接利用征狀值計算裝置420來計算目前字碼(current codeword)的征狀值(步驟608),例如,目前字碼用列數(shù)據(jù)i表示,其中i為正整數(shù)。
另一方面,若目前PI解碼操作并非第一次的解碼操作,那么所有旗標(biāo)應(yīng)該已經(jīng)在第一次PI解碼操作時就已經(jīng)有對應(yīng)的設(shè)定,譬如前述的設(shè)定為1或設(shè)定為0。因此,控制器450會先讀取目前PI字碼所對應(yīng)的旗標(biāo)(步驟604),以偵測該旗標(biāo)是否已經(jīng)被設(shè)定(步驟606);如果該旗標(biāo)已經(jīng)被設(shè)定,控制器450便可以由此得知無須處理目前PI字碼。因此,解碼裝置400會直接執(zhí)行步驟622以判定是否所有PI字碼都已經(jīng)處理完畢。若是,則結(jié)束這整個流程(步驟626);若否,處理下個PI字碼,亦即,在步驟624之中,定義i=i+1以取得下一個PI字碼。
另一方面,如果旗標(biāo)并未被設(shè)定,控制器450可藉此得知解碼裝置400需要對目前PI字碼進(jìn)行處理,因此,控制器450會利用征狀值計算裝置420來計算目前PI字碼的征狀值(步驟608)。
在執(zhí)行步驟608之后,控制器450會偵測計算出來的征狀值是否為0(步驟610);若征狀值為0,這代表目前PI字碼為一無錯誤的字碼,因此,控制器450會控制旗標(biāo)設(shè)定電路430以設(shè)定目前PI字碼的旗標(biāo)(步驟618)。接著,解碼裝置400會執(zhí)行步驟622以判定是否所有PI字碼都已經(jīng)處理完畢。若是,則結(jié)束這整個流程(步驟626);若否,繼續(xù)執(zhí)行下一個PI字碼,亦即,執(zhí)行步驟624以通過定義i=i+1來取得下一個PI字碼。
此外,如果計算出來的征狀值不等于0,這代表目前PI字碼具有至少一個錯誤,因此控制器450會控制錯誤更正裝置440以更正PI字碼上的錯誤(步驟612)。接著,控制器450會偵測目前PI字碼是否已經(jīng)可以解碼,換句話說,控制器450會偵測目前PI字碼是否為一無錯誤字碼(步驟616)。在此同時,如果目前PI字碼無法解碼,這代表目前PI字碼仍然具有錯誤,因此控制器450會控制旗標(biāo)設(shè)定電路430以重設(shè)對應(yīng)目前PI字碼的旗標(biāo)(步驟620)。另一方面,如果目前PI字碼已可解碼,控制器450會控制旗標(biāo)設(shè)定電路430以設(shè)定對應(yīng)目前PI字碼的旗標(biāo)(步驟618)。此外,由于PI字碼上的數(shù)據(jù)已經(jīng)被更正了,這代表特定位置上所儲存的值有所變化,也連帶影響到了對應(yīng)該特定位置的PO字碼的征狀值。舉例來說,如果坐標(biāo)(i,j)的數(shù)據(jù)被視為一個錯誤,而錯誤更正裝置對坐標(biāo)(i,j)的數(shù)據(jù)進(jìn)行更正,那么對于行數(shù)據(jù)j來說,行數(shù)據(jù)j的征狀值也隨之改變。因此,在本實(shí)施例中,控制器450會控制旗標(biāo)設(shè)定電路430以根據(jù)錯誤位置將特定的PO字碼的旗標(biāo)重設(shè)。換句話說,旗標(biāo)設(shè)定電路430會重設(shè)行數(shù)據(jù)j的旗標(biāo)(步驟614)。接著,解碼裝置400執(zhí)行步驟622以判定是否所有PI字碼都已經(jīng)處理完畢。若是,則結(jié)束這整個流程(步驟626);若否,處理下一個PI字碼,亦即,在步驟624之中,定義i=i+1以取得下一個PI字碼。
在此請注意,在步驟602中,控制器450可以計算PI解碼操作的重復(fù)次數(shù)。與前述的現(xiàn)有技術(shù)類似,當(dāng)重復(fù)次數(shù)大于一預(yù)設(shè)值時,控制器450可以停止整個解碼操作。如此的相對應(yīng)變化,也屬本發(fā)明的范疇。
請參閱圖7A以及圖7B。圖7A與圖7B為本發(fā)明PO解碼操作的流程圖。其包含下列步驟步驟700開始;步驟702偵測目前正在執(zhí)行的解碼操作是否為一重復(fù)的解碼操作?如果目前正在執(zhí)行的解碼操作為一重復(fù)的解碼操作,則接至步驟704;否則,接至步驟708;步驟704讀取對應(yīng)行數(shù)據(jù)j的旗標(biāo);
步驟706偵測旗標(biāo)是否已經(jīng)被設(shè)定(asserted)?若是,則接至步驟722;否則接至步驟708;步驟708計算行數(shù)據(jù)j的征狀值;步驟710偵測計算出來的征狀值是否為0?若計算出來的征狀值等于0,則接至步驟718;否則接至步驟712;步驟712更正行數(shù)據(jù)j上的錯誤;步驟71 6偵測行數(shù)據(jù)j是否已可解碼?若行數(shù)據(jù)j已可解碼,則接至步驟718;否則接至步驟720;步驟718設(shè)定(assert)行數(shù)據(jù)j的旗標(biāo),并且接至步驟714;步驟714重設(shè)(deassert)列數(shù)據(jù)i的旗標(biāo),其中錯誤是位于坐標(biāo)(i,j)上,接著接至步驟722;步驟720重設(shè)行數(shù)據(jù)j的旗標(biāo);步驟722是否所有行數(shù)據(jù)都可解碼?如果所有行數(shù)據(jù)都可解碼,則接至步驟726;否則,接至步驟724;步驟724定義j=j(luò)+1,接著回到步驟702;步驟726結(jié)束。
在此請注意,PO解碼操作的流程大體上與前述的PI解碼操作對稱。首先,在所有的PI字碼都進(jìn)行前述的PI解碼操作之后,PO解碼操作便開始執(zhí)行(步驟700)??刂破?50偵測目前正在執(zhí)行的PO解碼操作是否為一重復(fù)解碼操作(步驟702),由于所有的旗標(biāo)在前述的PI解碼或前一次PO解碼操作后便會被設(shè)定(亦即設(shè)定為1)或被重設(shè)(亦即設(shè)定為0);相同地,每一個旗標(biāo)是用來標(biāo)示每個字碼目前的狀態(tài)。
因此,假設(shè)目前PO解碼操作為第一次的PO解碼操作,這代表理論上所有旗標(biāo)都為重設(shè)狀態(tài),此時控制器450會直接利用征狀值計算裝置420來計算目前字碼(current codeword)的征狀值(步驟708),在這里的目前字碼是以行數(shù)據(jù)j表示,其中j為正整數(shù)。
另一方面,若目前PO解碼操作并非第一次的解碼操作,那么代表所有旗標(biāo)應(yīng)該已經(jīng)在先前的PO/PI解碼操作時就已經(jīng)有對應(yīng)的設(shè)定,譬如前述的設(shè)定為1或設(shè)定為0。因此,控制器450會先讀取目前PO字碼(行數(shù)據(jù)j)所對應(yīng)的旗標(biāo)(步驟704),以偵測該旗標(biāo)是否已經(jīng)被設(shè)定(步驟706);如果該旗標(biāo)已經(jīng)被設(shè)定,控制器450便可以由此得知無須處理目前PO字碼。因此,解碼裝置400會直接執(zhí)行步驟722以判定是否所有P0字碼都已經(jīng)處理完畢。若是,則結(jié)束這整個流程(步驟726);若否,處理下一個PO字碼,亦即,在步驟724之中,定義j=j(luò)+1以取得下一個PO字碼。
另一方面,如果旗標(biāo)并未被設(shè)定,控制器450可藉此得知解碼裝置400需要對目前PO字碼進(jìn)行處理,因此,控制器450會利用征狀值計算裝置420來計算目前PO字碼的征狀值(步驟708)。在執(zhí)行步驟708之后,控制器450會偵測計算出來的征狀值是否為0(步驟71 0);若征狀值為0,這代表目前PO字碼為一無錯誤的字碼,因此,控制器450會控制旗標(biāo)設(shè)定電路430以設(shè)定目前PO字碼的旗標(biāo)(步驟718)。這代表了下一次PO解碼時無須再次對行數(shù)據(jù)j進(jìn)行處理。接著,解碼裝置400會執(zhí)行步驟722以判定是否所有PO字碼都已經(jīng)處理完畢。若是,則結(jié)束這整個流程(步驟726);若否,繼續(xù)執(zhí)行下一個PO字碼,亦即,執(zhí)行步驟724以通過定義j=j(luò)+1來取得下一個PO字碼。
此外,如果計算出來的征狀值不等于0,這代表目前PO字碼具有至少一個錯誤,因此控制器450會控制錯誤更正裝置440以更正PO字碼上的錯誤(步驟712)。接著,控制器450會偵測目前PO字碼是否已經(jīng)可以解碼;換句話說,控制器450會偵測目前PO字碼是否為一無錯誤字碼(步驟716)。在此同時,如果目前PO字碼無法解碼,這代表目前PO字碼仍然具有錯誤,因此控制器450會控制旗標(biāo)設(shè)定電路430以重設(shè)對應(yīng)目前PO字碼的旗標(biāo)(步驟720)。另一方面,如果目前PO字碼已可解碼,控制器450會控制旗標(biāo)設(shè)定電路430以設(shè)定對應(yīng)目前PO字碼的旗標(biāo)(步驟718)。此外,由于PO字碼上的數(shù)據(jù)已經(jīng)被更正了,這代表特定位置上所儲存的值有所變化,也連帶影響到了對應(yīng)該特定位置的PI字碼的征狀值。舉例來說,如果坐標(biāo)(i,j)的數(shù)據(jù)被視為一個錯誤,而錯誤更正裝置對坐標(biāo)(i,j)的數(shù)據(jù)進(jìn)行更正,那么對于列數(shù)據(jù)i來說,列數(shù)據(jù)i的征狀值也隨之改變。因此,在本實(shí)施例中,控制器450會控制旗標(biāo)設(shè)定電路430以根據(jù)錯誤位置將特定的PI字碼的旗標(biāo)重設(shè)。換句話說,旗標(biāo)設(shè)定電路430會重設(shè)列數(shù)據(jù)i的旗標(biāo)(步驟714)。接著,解碼裝置400執(zhí)行步驟722以判定是否所有PO字碼都已經(jīng)處理完畢。若是,則結(jié)束這整個流程(步驟726);若否,處理下個PO字碼,亦即,在步驟724之中,定義j=j(luò)+1以取得下一個PO字碼。
在此請注意,在步驟702中,控制器450可以計算PO解碼操作的重復(fù)次數(shù)。與前述的現(xiàn)有技術(shù)類似,當(dāng)重復(fù)次數(shù)大于一預(yù)設(shè)值時,控制器450可以停止整個解碼操作。如此的相對應(yīng)變化,也屬本發(fā)明的范疇。
當(dāng)PO解碼操作完成后,如前所述,ECC方塊500中有許多錯誤數(shù)據(jù)已經(jīng)經(jīng)過更正。因此,整個流程可以再次接至步驟600以執(zhí)行PI解碼操作。這與前述的步驟302~308類似。換句話說,PI解碼操作與PO解碼操作可以執(zhí)行數(shù)次以更正ECC方塊500中所有錯誤數(shù)據(jù)?;蛘?,當(dāng)解碼操作重復(fù)執(zhí)行的次數(shù)大于一預(yù)設(shè)值,停止整個解碼操作并視為解碼失敗。
請參閱圖8,圖8為本發(fā)明更正圖5所示的ECC方塊另一實(shí)施例的方法流程圖。其包含有下列步驟步驟800開始;步驟801將對應(yīng)PI/PO字碼的所有旗標(biāo)初始化;步驟802對所有的PI字碼進(jìn)行解碼操作;步驟804對所有的PO字碼進(jìn)行解碼操作;步驟806若所有的PI/PO字碼都為可解碼的字碼,則接至步驟812;否則,接至步驟808;步驟808計算解碼PI/PO字碼的重復(fù)次數(shù),若該次數(shù)大于一默認(rèn)值,則接至步驟810;否則接至步驟802;步驟810解碼失敗;步驟812解碼完成。
相較于圖3所示的流程圖,圖8所示的流程進(jìn)一步包含有一步驟801。因此,在第一次執(zhí)行解碼操作之前,對應(yīng)PI/PO字碼的所有旗標(biāo)都會被重設(shè)(deasserted)。此外,在此請注意,步驟802~812與前述的步驟302~312相同,故不另贅述于此。
在此請參閱圖9A與圖9B。圖9A與圖9B為對應(yīng)圖8所示的解碼流程的PI解碼的流程圖。其包含有下列步驟步驟900開始;步驟904讀取對應(yīng)列數(shù)據(jù)i的旗標(biāo);步驟906偵測旗標(biāo)是否已經(jīng)被設(shè)定(asserted)?若是,則接至步驟922;否則接至步驟908;步驟908計算列數(shù)據(jù)i的征狀值;步驟910偵測計算出來的征狀值是否為0?若計算出來的征狀值等于0,則接至步驟918;否則接至步驟912;步驟912更正列數(shù)據(jù)i上的錯誤,并接至步驟916;步驟916偵測列數(shù)據(jù)i是否已可解碼?若列數(shù)據(jù)i已可解碼,則接至步驟918,否則接至步驟920;步驟918設(shè)定(assert)列數(shù)據(jù)i的旗標(biāo),并接至步驟914;步驟914重設(shè)(deassert)行數(shù)據(jù)j的旗標(biāo),其中錯誤是位于坐標(biāo)(i,j)上,接著接至步驟922;步驟920重設(shè)列數(shù)據(jù)i的旗標(biāo);步驟922是否所有列數(shù)據(jù)都可解碼?如果所有列數(shù)據(jù)都可解碼,則接至步驟926;否則,接至步驟924;步驟924定義i=i+1,接著回到步驟904;
步驟926結(jié)束。
在本實(shí)施例中,請注意,由于所有的旗標(biāo)在第一次解碼操作之前就已經(jīng)被全部重設(shè),因此移除對應(yīng)圖6A的步驟602。因此,本實(shí)施例無須偵測目前的PI解碼操作是否為一個重復(fù)解碼操作,便可直接在步驟904中對旗標(biāo)進(jìn)行讀取。
此外,步驟904~926完全與圖6A與圖6B所示的步驟604~626相同,故不另贅述于此。
在此請參閱圖10A與圖10B。圖10A與圖10B為對應(yīng)圖8所示的解碼流程的PO解碼的流程圖。其包含有下列步驟步驟1000開始;步驟1004讀取對應(yīng)行數(shù)據(jù)j的旗標(biāo);步驟1006偵測旗標(biāo)是否已經(jīng)被設(shè)定(asserted)?若是,則接至步驟1022;否則接至步驟1008;步驟1008計算行數(shù)據(jù)j的征狀值;步驟1010偵測計算出來的征狀值是否為0?若計算出來的征狀值等于0,則接至步驟1018;否則接至步驟1012;步驟1012更正行數(shù)據(jù)j上的錯誤,并接至步驟1016;步驟1016偵測行數(shù)據(jù)j是否已可解碼?若行數(shù)據(jù)j已可解碼,則接至步驟1018;否則接至步驟1020;步驟1018設(shè)定(assert)行數(shù)據(jù)j的旗標(biāo),并接至步驟1014;步驟1014重設(shè)(deassert)列數(shù)據(jù)i的旗標(biāo),其中錯誤是位于坐標(biāo)(i,j)上,接著接至步驟1022;步驟1020重設(shè)行數(shù)據(jù)j的旗標(biāo);步驟1022是否所有行數(shù)據(jù)都可解碼?如果所有行數(shù)據(jù)都可解碼,則接至步驟1026;否則,接至步驟1024;步驟1024定義j=j(luò)+1,接著回到步驟1004;
步驟1026結(jié)束。
在本實(shí)施例中,由于所有的旗標(biāo)在第一次解碼操作之前就已經(jīng)被全部重設(shè),因此移除了對應(yīng)圖7A的步驟702。因此,本實(shí)施例無須偵測目前的PO解碼操作是否為一個重復(fù)解碼,便可直接在步驟1004中對旗標(biāo)進(jìn)行讀取的動作。
此外,步驟1004~1026完全與圖7A與圖7B所示的步驟704~726相同,故不另贅述于此。
在此請注意,本發(fā)明并未限制旗標(biāo)的數(shù)目。亦即一個旗標(biāo)可以對應(yīng)一個字碼集合,一個字碼集合包含有復(fù)數(shù)個字碼。換句話說,本發(fā)明解碼裝置仍可以先偵測旗標(biāo),然后再解碼對應(yīng)未設(shè)定的旗標(biāo)的字碼集合。如此的相對應(yīng)變化,也不違背本發(fā)明的精神。
在此請注意,前述從DVD盤片讀取出來的ECC方塊僅為本發(fā)明的一實(shí)施例,而非對本發(fā)明的限制。換句話說,本發(fā)明可應(yīng)用于任何需要對ECC方塊進(jìn)行解碼的機(jī)制之中。
此外,前述PI/PO字碼的解碼操作也僅為本發(fā)明的一實(shí)施例,而非本發(fā)明的限制。換言之,本發(fā)明可以應(yīng)用于其它的ECC方塊的解碼機(jī)制。例如,PI/PO解碼操作是奠基于多項(xiàng)式以計算出每個字碼的征狀值,以及其錯誤值與錯誤位置。但是在一些實(shí)施例中,可能有其它用于計算征狀值的多項(xiàng)式,并且前述的字碼的定義也不會僅限制于水平或是豎直方向的數(shù)據(jù)線,例如,可以是一斜的數(shù)據(jù)線。如此的相對應(yīng)變化,也不違背本發(fā)明的精神。
相較于現(xiàn)有技術(shù),本發(fā)明可以避免對無錯誤字碼反復(fù)進(jìn)行征狀值計算的操作。如此可以節(jié)省解碼操作的執(zhí)行時間以及系統(tǒng)資源。換句話說,相較于已知的解碼方式,本發(fā)明不但提供一個更有效率的解碼方式,而且還提供一個消耗更少系統(tǒng)資源的解碼方式。
以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明權(quán)利要求所做的均等變化與修飾,都應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種用來解碼一錯誤更正碼方塊的方法,其特征在于,該方法包含有提供復(fù)數(shù)個旗標(biāo),其中每個旗標(biāo)是用來將該錯誤更正碼方塊的至少一數(shù)據(jù)線標(biāo)示為一無錯誤數(shù)據(jù)線;以及偵測對應(yīng)一特定數(shù)據(jù)線的一旗標(biāo)是否已經(jīng)被設(shè)定,以及,如果該旗標(biāo)已經(jīng)被設(shè)定,則略過該特定數(shù)據(jù)線的一征狀值的計算。
2.如權(quán)利要求1所述的方法,其特征在于,所述每個數(shù)據(jù)線對應(yīng)一字碼。
3.如權(quán)利要求1所述的方法,其特征在于,所述偵測該旗標(biāo)是否已經(jīng)設(shè)定的步驟進(jìn)一步包含若該旗標(biāo)還未被設(shè)定,計算該特定數(shù)據(jù)線的該征狀值,若該征狀值不等于一預(yù)定值,則更正該特定數(shù)據(jù)線上至少一位置的數(shù)據(jù),以及若計算出的該征狀值等于該預(yù)定值或該數(shù)據(jù)線已可解碼,則設(shè)定該旗標(biāo)。
4.如權(quán)利要求3所述的方法,其特征在于,所述更正該特定數(shù)據(jù)線上至少一位置的數(shù)據(jù)的步驟進(jìn)一步包含重設(shè)對應(yīng)該位置的一第二數(shù)據(jù)線的一旗標(biāo)。
5.如權(quán)利要求4所述的方法,其特征在于,所述特定數(shù)據(jù)線為一PI字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PO字碼。
6.如權(quán)利要求4所述的方法,其特征在于,所述特定數(shù)據(jù)線為一PO字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PI字碼。
7.如權(quán)利要求1所述的方法,其特征在于,所述每個旗標(biāo)是用來將一數(shù)據(jù)線集合標(biāo)示為一無錯誤數(shù)據(jù)線集合,該數(shù)據(jù)線集合包含有該錯誤更正碼方塊中復(fù)數(shù)條數(shù)據(jù)線,以及偵測該旗標(biāo)是否已經(jīng)被設(shè)定的步驟進(jìn)一步包含如果該旗標(biāo)還未被設(shè)定,則計算一特定數(shù)據(jù)線集合的該特定數(shù)據(jù)線的征狀值,若該征狀值不等于一預(yù)定值,則更正該特定數(shù)據(jù)線中至少一位置的數(shù)據(jù),以及若該特定數(shù)據(jù)線集合中所有數(shù)據(jù)線的征狀值都等于該預(yù)定值時或所有數(shù)據(jù)線都可解碼時,則設(shè)定該旗標(biāo)。
8.如權(quán)利要求7所述的方法,其特征在于,所述更正該特定數(shù)據(jù)線的數(shù)據(jù)的步驟進(jìn)一步包含重設(shè)對應(yīng)于該位置的一第二數(shù)據(jù)線的一旗標(biāo)。
9.如權(quán)利要求8所述的方法,其特征在于,所述特定數(shù)據(jù)線為一PI字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PO字碼。
10.如權(quán)利要求8所述的方法,其特征在于,所述特定數(shù)據(jù)線為一PO字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PI字碼。
11.如權(quán)利要求1所述的方法,其特征在于,所述錯誤更正碼方塊是應(yīng)用于光學(xué)儲存系統(tǒng)。
12.一種用來解碼一錯誤更正碼方塊的解碼裝置,其特征在于,該解碼裝置包含有一儲存裝置,用來儲存該錯誤更正碼方塊以及復(fù)數(shù)個旗標(biāo),其中每個旗標(biāo)是用來將該錯誤更正碼方塊至少一數(shù)據(jù)線標(biāo)示為一無錯誤數(shù)據(jù)線;一征狀值計算裝置;以及一控制器,電連接至所述儲存裝置以及所述征狀值計算裝置,用來偵測對應(yīng)一特定數(shù)據(jù)線的一旗標(biāo)是否已經(jīng)被設(shè)定,以及如果該旗標(biāo)已經(jīng)被設(shè)定,則控制該征狀值計算裝置以略過該特定數(shù)據(jù)線的一征狀值的計算。
13.如權(quán)利要求12所述的解碼裝置,其特征在于,所述每個數(shù)據(jù)線對應(yīng)一字碼。
14.如權(quán)利要求12所述的解碼裝置,其特征在于,該解碼裝置進(jìn)一步包含一錯誤更正裝置,耦接至所述控制器;以及一旗標(biāo)設(shè)定電路,耦接至所述控制器;其中若該旗標(biāo)還未設(shè)定,則該控制器進(jìn)一步控制該征狀值計算裝置來計算該特定數(shù)據(jù)線的征狀值,若該征狀值不等于一預(yù)定值,則該控制器控制該錯誤更正裝置以更正該特定數(shù)據(jù)線上至少一位置的數(shù)據(jù),以及若該征狀值等于該預(yù)定值或該數(shù)據(jù)線已可解碼,則該控制器控制該旗標(biāo)設(shè)定電路以設(shè)定該旗標(biāo)。
15.如權(quán)利要求14所述的解碼裝置,其特征在于,所述控制器進(jìn)一步控制該旗標(biāo)設(shè)定電路以重設(shè)對應(yīng)該位置的一第二數(shù)據(jù)線的旗標(biāo)。
16.如權(quán)利要求15所述的解碼裝置,其特征在于,所述特定數(shù)據(jù)線為一PI字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PO字碼。
17.如權(quán)利要求15所述的解碼裝置,其特征在于,所述特定數(shù)據(jù)線為一PO字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PI字碼。
18.如權(quán)利要求12所述的解碼裝置,其特征在于,該解碼裝置進(jìn)一步包含一錯誤更正裝置,耦接于所述控制器;以及一旗標(biāo)設(shè)定電路,耦接于所述控制器;其中每個旗標(biāo)是用來將具有復(fù)數(shù)條數(shù)據(jù)線的一數(shù)據(jù)線集合標(biāo)示為一無錯誤數(shù)據(jù)線集合,以及若該旗標(biāo)還未被設(shè)定,則該控制器另控制該征狀值計算裝置以計算該特定數(shù)據(jù)線的征狀值,若該征狀值不等于一預(yù)定值,則該控制器控制該錯誤更正裝置來更正該特定數(shù)據(jù)線上至少一位置的數(shù)據(jù),以及若該特定數(shù)據(jù)線集合的所有征狀值都等于該預(yù)定值或該特定數(shù)據(jù)線集合的所有數(shù)據(jù)線都可解碼,則該控制器控制該旗標(biāo)設(shè)定電路以設(shè)定該旗標(biāo)。
19.如權(quán)利要求18所述的解碼裝置,其特征在于,所述控制器進(jìn)一步控制該旗標(biāo)設(shè)定電路以重設(shè)對應(yīng)該位置的一第二數(shù)據(jù)線的旗標(biāo)。
20.如權(quán)利要求19所述的解碼裝置,其特征在于,所述特定數(shù)據(jù)線為一PI字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PO字碼。
21.如權(quán)利要求19所述的解碼裝置,其特征在于,所述特定數(shù)據(jù)線為一PO字碼,以及所述第二數(shù)據(jù)線為對應(yīng)該位置的一PI字碼。
22.如權(quán)利要求12所述的解碼裝置,其特征在于,所述錯誤更正碼方塊是應(yīng)用于光學(xué)儲存系統(tǒng)。
全文摘要
本發(fā)明提供一種用來解碼錯誤更正碼方塊的方法及其相關(guān)裝置,該方法包含有提供復(fù)數(shù)個旗標(biāo),其中每個旗標(biāo)是用來將該錯誤更正碼方塊的至少一數(shù)據(jù)線標(biāo)示為一無錯誤數(shù)據(jù)線;以及偵測對應(yīng)一特定數(shù)據(jù)線的一旗標(biāo)是否已經(jīng)設(shè)定,以及,如果該旗標(biāo)已經(jīng)設(shè)定,則略過該特定數(shù)據(jù)線的一征狀值的計算。本發(fā)明可以避免對無錯誤字碼反復(fù)進(jìn)行征狀值計算的操作。如此可以節(jié)省解碼操作的執(zhí)行時間以及系統(tǒng)資源。換句話說,比起已知的解碼方式,本發(fā)明不但提供一個更有效率的解碼方式,而且此解碼方式只須消耗更少的系統(tǒng)資源。
文檔編號H03M13/00GK1983433SQ20061016459
公開日2007年6月20日 申請日期2006年12月8日 優(yōu)先權(quán)日2005年12月12日
發(fā)明者謝嘉鴻, 劉碧海 申請人:聯(lián)發(fā)科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
潞西市| 南阳市| 左云县| 昌邑市| 安仁县| 佛教| 本溪市| 巴楚县| 江门市| 柯坪县| 凌源市| 五常市| 湖州市| 崇礼县| 八宿县| 黑河市| 凤城市| 阿图什市| 思茅市| 沂水县| 长阳| 威海市| 航空| 玛纳斯县| 肥东县| 龙门县| 武宣县| 泾源县| 赤峰市| 萨迦县| 南溪县| 苍梧县| 弥勒县| 南阳市| 施秉县| 福鼎市| 长岛县| 富锦市| 南丹县| 白山市| 浦东新区|