專利名稱:可錯誤更正的數(shù)據(jù)編碼方法
技術領域:
本發(fā)明涉及一種可錯誤更正的數(shù)據(jù)編碼方法,特別涉及一種儲存及除錯效率較高的編碼方法。
背景技術:
為了有效率將數(shù)據(jù)儲存在記錄儲存媒體(recording media)上,并使數(shù)據(jù)能夠獲得妥善的保護,通常在儲存數(shù)據(jù)前都會經(jīng)過特定的編碼程序來將數(shù)據(jù)編碼。
一般傳統(tǒng)的編碼過程,開始時會先將主數(shù)據(jù)(main data)讀取進來,然后在主數(shù)據(jù)前加入地址識別數(shù)據(jù)(ID)、地址識別數(shù)據(jù)錯誤檢測碼(IED,ID ErrorDetection Code)以及防拷信息(CPRM),之后再在主數(shù)據(jù)加入錯誤檢測碼(EDC,Error Detection Code),接著將主數(shù)據(jù)進行擾亂(scramble),再針對列與行分別加入內(nèi)部檢查碼(PI)與外部檢查碼(PO)的兩種錯誤更正碼(ECC,ErrorCorrection Code)以產(chǎn)生一個區(qū)塊,稱之為錯誤更正碼區(qū)塊(ECC block)。一般而言,檢查碼的長度愈長,就代表其糾錯的能力愈好,能夠修正錯誤數(shù)據(jù)的數(shù)目愈多。
就DVD系統(tǒng)而言,如圖1所示,此為現(xiàn)有DVD系統(tǒng)的錯誤更正碼區(qū)塊的編碼格式,主數(shù)據(jù)區(qū)塊的一列長度為172字節(jié)(bytes),共有192列,也就是說主數(shù)據(jù)可容納192×172=33024個字節(jié)(bytes)數(shù)據(jù),但其中還包含了將主數(shù)據(jù)區(qū)塊切割成多個區(qū)段(sector)的每一區(qū)段地址。再對主數(shù)據(jù)區(qū)塊的行加入10字節(jié)的內(nèi)部檢查碼,以及對主數(shù)據(jù)區(qū)塊的列加入16字節(jié)的外部檢查碼。
但如果在盤片中的檢查碼放置的愈多,相對地其能記錄的使用者數(shù)據(jù)就變少。因此,如何設計出一個高效率的錯誤更正碼(High Coding Rate ECC;HR-ECC)區(qū)塊,就成為本專利提案所要提出的重點。
發(fā)明內(nèi)容本發(fā)明所要解決的技術問題在于提出一種可錯誤更正的數(shù)據(jù)編碼方法,并提供三種具有較高效率及較長連續(xù)錯誤譯碼能力的錯誤更正碼區(qū)塊設計。
因此,為實現(xiàn)上述目的,本發(fā)明所揭露的一種可錯誤更正的數(shù)據(jù)編碼方法,至少必須包含下列步驟首先,將想儲存的數(shù)據(jù)區(qū)塊的每一列加入列檢查碼(CSR,Check Sum on Row),及每一行加入行檢查碼(CSC,Check Sum on Co1umn);接著再對數(shù)個編碼過的數(shù)據(jù)區(qū)塊組合成一數(shù)據(jù)矩陣,以提高連續(xù)錯誤的譯碼能力,再以固定行數(shù)的寬度進行區(qū)段(sector)切割后,并于各區(qū)段(sector)前加入?yún)^(qū)段地址信息;最后,將編碼完成后的數(shù)據(jù)記錄到記錄儲存媒體上。
依據(jù)本發(fā)明所揭露的方法,區(qū)段地址信息將不再被納入錯誤更正碼的編碼范圍,因此可使主數(shù)據(jù)區(qū)塊的偵錯能力更為增加。此外,本發(fā)明還提供三種編碼區(qū)塊格式,可依據(jù)各實施時所需情況選擇采取何種形式寫入記錄儲存媒體中,使數(shù)據(jù)儲存可以更具彈性。
以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
圖1為現(xiàn)有DVD錯誤更正碼區(qū)塊格式的示意圖;圖2為本發(fā)明的方法流程圖;圖3a為本發(fā)明第一種高效率編碼方塊加入檢查碼后的示意圖;圖3b為本發(fā)明第二種高效率編碼方塊加入檢查碼后的示意圖;圖3c為本發(fā)明第三種高效率編碼方塊加入檢查碼后的示意圖;圖4a為本發(fā)明第一種高效率編碼方塊切割成多個區(qū)段后的示意圖;圖4b為本發(fā)明第二種高效率編碼方塊切割成多個區(qū)段后的示意圖;圖5a及圖5b為本發(fā)明一個區(qū)段在加入?yún)^(qū)段地址后的示意圖;圖6a為本發(fā)明第一種高效率編碼方塊加入?yún)^(qū)段地址后的示意圖;圖6b為本發(fā)明第二種高效率編碼方塊加入?yún)^(qū)段地址后的示意圖;圖6c為本發(fā)明第三種高效率編碼方塊加入?yún)^(qū)段地址后的示意圖;圖7為本發(fā)明與DVD(紅光)在錯誤更正碼編碼方塊效率比較表;及圖8為本發(fā)明與HD-DVD(藍光)在錯誤更正碼編碼方塊效率比較表。
其中,附圖標記
步驟210 記錄數(shù)據(jù)排列成數(shù)個M列×N行的數(shù)據(jù)區(qū)塊步驟220 針對數(shù)據(jù)區(qū)塊的每一列加入列檢查碼,及其每一行加入行檢查碼成為一ECC區(qū)塊步驟230 將K個ECC區(qū)塊排列組成一較大的ECC區(qū)塊步驟240 以L列為單位切割ECC區(qū)塊成多個區(qū)段并于各區(qū)段前加入?yún)^(qū)段地址信息步驟250 將此含有區(qū)段地址的多個數(shù)據(jù)區(qū)段進行重新排列具體實施方式
本發(fā)明將揭露一種可錯誤更正的數(shù)據(jù)編碼方法以及三種編碼區(qū)塊格式。在本發(fā)明的以下詳細說明中,將描述多種特定的細節(jié)以便提供本發(fā)明的完整說明。然而,對熟知技藝者來說,并可以不需要使用該等特定細節(jié)便可以實施本發(fā)明,或者可以借著利用替代的組件或方法來實施本發(fā)明。在其它的狀況下,并不特別詳細地說明已知的方法、程序、部件、以及電路,以免不必要地混淆本發(fā)明的重點。
如圖2所示,此為本發(fā)明的方法流程圖,以第一種高效率編碼方塊為例作說明,如圖3a所示,在編碼的過程中,首先,將想記錄的數(shù)據(jù)排列成一數(shù)據(jù)區(qū)塊,其中該區(qū)塊中的每一列的數(shù)據(jù)長度N為228個字節(jié),換句話說具有N行,而每一行的數(shù)據(jù)長度M為225個字節(jié),也就是具有M列,構(gòu)成一個大小為225×228的一個數(shù)據(jù)區(qū)塊(步驟210)。
針對數(shù)據(jù)區(qū)塊的每一列加入列檢查碼,及其每一行加入行檢查碼成為一ECC區(qū)塊,分別對每一行作檢查碼(parity)編碼,其中每一列檢查碼(CSR,CheckSum on Row)占9個字節(jié)大小,而每一行檢查碼(CSC,Check Sum on Column)占27個字節(jié)大小(步驟220),檢查碼的功能在于當儲存數(shù)據(jù)發(fā)生錯誤時,可以找出錯誤發(fā)生的位置,進而將錯誤的數(shù)據(jù)更正回來,因此當檢查碼的長度越長,就代表其糾錯能力越好,能夠?qū)㈠e誤數(shù)據(jù)還原的數(shù)目也就越多。
以Reed-Solomon(RS)code來說,在錯誤譯碼的過程中,能更正的錯誤數(shù)據(jù)數(shù)目一般為檢查碼的一半,以長度為27個字節(jié)的行檢查碼來說,最多只能解出13筆錯誤的數(shù)據(jù),當一列的錯誤數(shù)據(jù)超過13個字節(jié)以上,就無法做錯誤修正。但是如果在譯碼過程已知錯誤的數(shù)據(jù)位置,則能夠修正的錯誤數(shù)據(jù)就可以提高至27個字節(jié)。當遇到連續(xù)一段長度的數(shù)據(jù)錯誤,意味著列檢查碼并無法修正這些錯誤數(shù)據(jù),但是在使用行檢查碼作錯誤修正的時來說,就可以預先設定這些錯誤的位置,把修正能力提高至27個字節(jié)。因此以第一種高效率編碼方塊為例,可以容許的連續(xù)錯誤長度可以達到237×27=6399個字節(jié)。
為了提高連續(xù)錯誤的更正能力,將兩個加入列檢查碼及行檢查碼的錯誤修正碼區(qū)塊組合起來成為一個新的錯誤修正碼區(qū)塊,每個錯誤修正碼區(qū)塊都維持原有的譯碼能力,對于連續(xù)錯誤的修正長度等于就可以提高一倍;因此,若以K個錯誤修正碼區(qū)塊組合起來,則可使連續(xù)錯誤的修正長度提高至K倍(步驟230)。
然而相對的,如果放置在記錄儲存媒體的檢查碼越多,在相同容量的空間能放置的代碼就變少,因此發(fā)明人還揭露第二種高效率編碼方塊,如圖3b所示,與第一種高效率編碼方塊相比,此種數(shù)據(jù)格式由兩個大小為210×178的錯誤修正碼區(qū)塊組成,其中記錄數(shù)據(jù)為一個192×171的數(shù)據(jù)區(qū)塊,每一列檢查碼只占7個字節(jié)大小,而每一行檢查碼只占18個字節(jié)大小,其單一個錯誤修正碼區(qū)塊的連續(xù)錯誤的譯碼長度只有178×18=3204個字節(jié),但是兩個錯誤修正碼區(qū)塊組合起來之后,可以維持與第一種高效率編碼方塊相近的連續(xù)錯誤的譯碼長度,為178×18×2=6408個字節(jié)。
另外,發(fā)明人也揭露第三種高效率編碼方塊,如圖3c所示,與第二種高效率編碼方塊相比,此種數(shù)據(jù)格式在每一行檢查碼只占了12個字節(jié)大小,雖然糾錯能力稍微減少了一些,但是可以應用在儲存影音數(shù)據(jù)的此容許較大錯誤量的數(shù)據(jù)上,而第二種高效率編碼方塊格式則較適合用于如資料系統(tǒng)等在重要數(shù)據(jù)的保護上。
當數(shù)據(jù)區(qū)塊已經(jīng)分別加上了列檢查碼、及行檢查碼后,接下來,便是如圖4a及圖4b所示,以一固定的列單位長度(假設為L)切割錯誤檢查碼區(qū)塊成多個區(qū)段(sector),因此將第一種高效率編碼方塊以9列為單位切割為25個區(qū)段,第二、三種高效率編碼方塊則以6列為單位切割為35及34個區(qū)段,并在每個小區(qū)段的數(shù)據(jù)前給予一個地址標號,以利于讀回裝置將其數(shù)據(jù)讀回時能分辨出目前讀出的數(shù)據(jù)為哪一個小區(qū)段(步驟240)。如圖5a所示,此為第一種高效率編碼方塊的一個區(qū)段在加入?yún)^(qū)段地址后的示意圖,在原先的數(shù)據(jù)格式中未加入?yún)^(qū)段地址時的列數(shù)據(jù)長度為(228+9)=237個字節(jié),加入后則變?yōu)?228+9+1)=238個字節(jié),另外如圖5b所示,此為第二、三種高效率編碼方塊的一個區(qū)段在加入?yún)^(qū)段地址后的示意圖,在原先的數(shù)據(jù)格式中未加入?yún)^(qū)段地址時的列數(shù)據(jù)長度為(171+7)×2=356個字節(jié),加入后則變?yōu)?171+7)×2+1=357個字節(jié)。
且在讀回裝置讀取數(shù)據(jù)時,能因如此的配置方式達到更正確且容易讀到其區(qū)段地址,以利辨識想讀取的數(shù)據(jù)。由于區(qū)段地址數(shù)據(jù)是加在原本經(jīng)過錯誤更正碼編碼后的數(shù)據(jù)前面,會使得原本數(shù)據(jù)擺放的位置向后移動,以第一種高效率編碼方塊為例,原本第一列具有237字節(jié)的錯誤更正碼區(qū)塊數(shù)據(jù),在前端加上9字節(jié)的區(qū)段地址后,只能擺放229字節(jié)的錯誤更正碼區(qū)塊數(shù)據(jù),同理在平均分配之后,也就是說原本一個區(qū)段的列數(shù)據(jù)長度為237個字節(jié)因此變成238個字節(jié);以第二、三種高效率編碼方塊為例,原本第一列具有356字節(jié)的錯誤更正碼區(qū)塊數(shù)據(jù),在前端加上6字節(jié)的區(qū)段地址后,只能擺放351字節(jié)的錯誤更正碼區(qū)塊數(shù)據(jù)。同理,在平均分配之后,也就是說原本一個區(qū)段的列數(shù)據(jù)長度為356個字節(jié)因此變成357個字節(jié),即將此含有區(qū)段地址的多個數(shù)據(jù)區(qū)段進行重新排列(步驟250)。在經(jīng)過加入?yún)^(qū)段地址后,第一種高效率編碼方塊、第二種高效率編碼方塊及第三種高效率編碼方塊的格式分別如圖6a、圖6b及圖6c所示。
本發(fā)明所揭露的兩種編碼格式與現(xiàn)今分別在紅光及藍光最被普遍使用的DVD與HD-DVD的儲存效能相比,分別如圖7及圖8所示,可以從三個參考指針來表示出其編碼效率,此三個參考指針分別是Coding Gain、Burst ErrorLength、One time ECC Correction Rate。先從DVD的錯誤更正碼區(qū)塊的效能來看,如圖7所表示,在分析之后可以得知,其Coding Gain為0.872;而CodingGain代表的意思為在一個錯誤更正碼區(qū)塊大小的容量中所能保護的數(shù)據(jù)比。而Burst Error Length則為2912個字節(jié);Burst Error Length的意義則在于當光盤片刮傷,能將連續(xù)損壞數(shù)據(jù)更正回來的長度。至于One time ECCCorrection Rate為11.24%;其意義為針對此錯誤更正碼區(qū)塊的數(shù)據(jù),當發(fā)生眾多隨機錯誤(Random Error)時,最多能解回數(shù)據(jù)個數(shù)的比值。
而本專利所提案的第一種高效率編碼方塊經(jīng)由分析之后得知其CodingGain為0.859;Burst Error Length為6399個字節(jié);One time ECC CorrectionRate則為13.75%,Coding Gain略小于DVD,但在后兩者數(shù)值的比較上則都優(yōu)于DVD。第二種高效率編碼方塊經(jīng)由分析之后得知其Coding Gain為0.878;Burst Error Length為6408個字節(jié);One time ECC Correction Rate則為11.13%,與DVD的編碼方式相差不大,但在前兩者數(shù)值的比較上則都優(yōu)于DVD。而第三種高效率編碼方塊經(jīng)由分析之后得知其Coding Gain為0.904,明顯的高過DVD的編碼方式許多,意味著在同樣的錯誤更正碼區(qū)塊大小中所能儲存的數(shù)據(jù)更多;Burst Error Length為4272個字節(jié)也比DVD的編碼方式好;One timeECC Correction Rate則為8%。
再與藍光系統(tǒng)的HD-DVD效能相比,如圖8所示,分析之后可以得知,其Coding Gain為0.872與DVD相同;而Burst Error Length則為5824個字節(jié);至于One time ECC Correction Rate為11.24%。
而本專利所提案的第一種高效率編碼方塊經(jīng)由分析之后得知其CodingGain為0.859;Burst Error Length為6399個字節(jié);One time ECC CorrectionRate則為13.75%,Coding Gain略小于HD-DVD,但在后兩者數(shù)值的比較上則都優(yōu)于HD-DVD。第二種高效率編碼方塊同樣在藍光系統(tǒng)下,經(jīng)由分析之后得知其Coding Gain為0.878;Burst Error Length為6408個字節(jié);One time ECCCorrection Rate則為11.13%,與HD-DVD的編碼方式相差不大,但在前兩者數(shù)值的比較上則都優(yōu)于HD-DVD。而第三種高效率編碼方塊經(jīng)由分析之后得知其Coding Gain為0.904,明顯的高過HD-DVD的編碼方式許多,意味著在同樣的錯誤更正碼區(qū)塊大小中所能儲存的數(shù)據(jù)更多;Burst Error Length為4272個字節(jié);One time ECC Correction Rate則為8%。
由于本專利提出的三種錯誤更正碼的編碼方式其糾錯能力各有不同。在實作上,此三種錯誤更正碼的編碼格式可以混合使用記錄于同一記錄儲存媒體上,可將糾錯能力強的第二種高效率編碼方塊使用在重要數(shù)據(jù)的保護,如文件系統(tǒng)等;而第三種高效率編碼方塊使用于對容許較大錯誤量的數(shù)據(jù),如影音數(shù)據(jù)等。若只想在盤片中記錄更多的數(shù)據(jù)而不在乎數(shù)據(jù)的重要性,可只使用單一第三種高效率編碼方塊的格式;同理,若只在乎數(shù)據(jù)重要性則可只使用單一糾錯能力強的第二種高效率編碼方塊的格式。
當然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求
的保護范圍。
權利要求
1.一種可錯誤更正的數(shù)據(jù)編碼方法,其特征在于,包含了下列步驟將記錄數(shù)據(jù)排列成多個M列×N行的數(shù)據(jù)區(qū)塊;對各該M列×N行的數(shù)據(jù)區(qū)塊的每一列加入一P字節(jié)長度的列檢查碼,及每一行加入一Q位組長度的行檢查碼,并形成一(M+Q)×(N+P)的錯誤更正碼區(qū)塊;將K個該(M+Q)×(N+P)的錯誤更正碼區(qū)塊排列組成一(M+Q)×(K(N+P))的錯誤更正碼區(qū)塊,其中K值為一大于等于1的正整數(shù);以L列為單位,切割該(M+Q)×(K(N+P))的錯誤更正碼區(qū)塊為多個數(shù)據(jù)區(qū)段,并在各該區(qū)段前加入一L位組長度的區(qū)段地址信息;及將含有該區(qū)段地址信息的各該數(shù)據(jù)區(qū)段重新排列成一(M+Q)×(K(N+P))的記錄數(shù)據(jù)區(qū)塊。
2.根據(jù)權利要求
1所述的方法,其特征在于,該列檢查碼占7字節(jié)的數(shù)據(jù)長度。
3.根據(jù)權利要求
1所述的方法,其特征在于,該列檢查碼占9字節(jié)的數(shù)據(jù)長度。
4.根據(jù)權利要求
1所述的方法,其特征在于,該行檢查碼占27字節(jié)的數(shù)據(jù)長度。
5.根據(jù)權利要求
1所述的方法,其特征在于,該行檢查碼占18字節(jié)的數(shù)據(jù)長度。
6.根據(jù)權利要求
1所述的方法,其特征在于,該行檢查碼占12字節(jié)的數(shù)據(jù)長度。
7.根據(jù)權利要求
1所述的方法,其特征在于,該(M+Q)×(K(N+P))的錯誤更正碼區(qū)塊以6字節(jié)為一列單位長度切割成該多個區(qū)段。
8.根據(jù)權利要求
1所述的方法,其特征在于,該(M+Q)×(K(N+P))的錯誤更正碼區(qū)塊以9字節(jié)為一列單位長度切割成該多個區(qū)段。
9.根據(jù)權利要求
1所述的方法,其特征在于,各該M列×N行的數(shù)據(jù)區(qū)塊為一225×228的矩陣。
10.根據(jù)權利要求
1所述的方法,其特征在于,各該M列×N行的數(shù)據(jù)區(qū)塊為一192×171的矩陣。
專利摘要
本發(fā)明公開了一種可錯誤更正的數(shù)據(jù)編碼方法,當數(shù)據(jù)被寫入記錄儲存媒體前,會先將想儲存的數(shù)據(jù)加入錯誤更正碼,包含列檢查碼及行檢查碼,以形成一錯誤更正碼區(qū)塊,再將一個以上的錯誤更正碼區(qū)塊組合成一數(shù)據(jù)矩陣,以抵抗較長的數(shù)據(jù)連續(xù)錯誤。最后將此數(shù)據(jù)矩陣進行區(qū)段切割后,針對各區(qū)段加上個別的區(qū)段地址信息后,即完成編碼程序,依據(jù)本發(fā)明的方法,區(qū)段地址信息將不再被納入錯誤更正碼的編碼范圍,因此可使主數(shù)據(jù)區(qū)塊的偵錯能力更為增加,此外,本發(fā)明還提供三種編碼區(qū)塊格式,可依據(jù)各實施時所需情況選擇采取何種形式寫入記錄儲存媒體中,使數(shù)據(jù)儲存可以更具彈性。
文檔編號G11B20/18GK1992053SQ200510137695
公開日2007年7月4日 申請日期2005年12月31日
發(fā)明者蔡銘昌, 許哲國, 賴國欣 申請人:財團法人工業(yè)技術研究院導出引文BiBTeX, EndNote, RefMan