專利名稱:帶保護字的二維游程長度受限約束的編解碼器及使用方法
技術領域:
本發明屬于數據存儲領域和通信領域。具體涉及當將二進制數據存儲在矩形格子組成的平面上,無論是在水平方向還是在垂直兩個方向上,在連續數據” 1”之間,數據“0” 的游程長度最少等于1,最多不超過3的編解碼器及使用方法。
背景技術:
在現代存儲技術和通信技術中,通道由于內在的物理特性,會對穿越通道的信號產生具有某種形式的約束限制。為降低通道對信號的影響,提高存儲系統和通信系統可靠性,解決這一問題的辦法之一就是用約束編碼技術,約束編碼又稱調制編碼。(d,k)游程長度受限約束(RLL)是這類約束的一個典型代表。這里d表示在連續數據“1”之間,“0”的游程長度最小值,k表示其最大值。著名的Miller碼,即改進型調頻碼MFM(美國專利號 3,108,沈1,公布日1963年10月22日),就是其中的一個代表。在MFM碼中,相鄰數據“ 1” 之間,“0”的游程長度至少等于1,最多不超過3,因此MFM碼有時候又稱為一維(1,3)RLL 碼。隨著技術的發展,近些年出現了將數據以二維頁面方式進行存儲的新型存儲器, 比如全息存儲器和二維光盤等。這類存儲器和目前主流存儲器的一個最大不同之處在于 數據每次按照二維頁面的方式存儲在記錄介質上,在讀取數據時,也是按照整頁整頁的方式進行。圖1描述了在全息存儲器中數據的這種二維布局示意。在上述二維存儲器中,以圖1為例,若不考慮邊界的影響,每位比特信息都有4個比特信息和它本身直接相鄰(即通常所說的上、下、左和右)。比較而言,在一維情形下,數據的布局如圖2所示。從圖1和圖2可以看出,在二維存儲中,二進制數據陣列在水平和垂直兩個方向上都有約束限制要求。這樣前面提到的改進型調頻碼(MFM),數據之間的內在約束條件會因空間尺度從一維轉到二維而發生相應變化,原先在一維條件下滿足的約束限制在二維情形下就不再有效。因此尋求新的二維約束編解碼方法,保證數據在水平和垂直兩個方向上能同時滿足新型二維存儲技術的發展和需求就顯得非常有必要。
發明內容
本發明所要解決的技術問題是提供一種帶保護字的二維游程長度受限約束的編解碼器及使用方法,本發明的編解碼方法和裝置能解決由“0”和“1”構成的二維數據陣列在兩個方向上均滿足(1,3)RLL約束的二維(1,3)RLL的技術問題。本發明所采用的技術方案是帶保護字的二維游程長度受限約束的編解碼器,包括編碼器和解碼器,所述編碼器包括數據緩沖及分組模塊,該模塊在緩沖接收一維數據流的同時,根據二維數據頁的大小,將數據劃分成若干個長度相等的分組;二維碼字生成模塊,該模塊根據編解碼規則表,將2比特的一維數據生成2X2的二維約束碼字;二維字單元頁構造模塊,該模塊將二維數據頁劃分成若干個2X2的二維數據子陣列組成的二維字單元頁;二維碼字寫入陣列模塊,該模塊將2X2的二維約束碼字,沿著二維字單元頁斜線方向的奇數行逐行寫入到二維數據陣列中;保護字填充模塊,該模塊依據二維碼字生成模塊所選編解碼規則表選取相應的二維保護字,并沿二維字單元頁斜線方向的偶數行順序,將二維保護字逐行填入到二維數據陣列;上述五個模塊依次連接,最后通過其中的保護字填充模塊輸出給二維數據記錄裝置;所述解碼器包括二維數據緩沖模塊,該模塊暫時存放從二維數據記錄裝置讀取的二維數據陣列;二維字單元頁構造模塊,該模塊將二維數據陣列劃分成由2X2的二維數據子陣列為最小讀取單元的二維字單元頁;一維數據字譯碼模塊,該模塊將2X2的二維約束碼字,根據相應的編解碼規則表譯碼成大小等于2比特的一維數據字;一維數據流組裝模塊,該模塊將一維數據字按照產生的先后順序組裝成一維數據流;上述五個模塊依次連接,最后通過其中的一維數據流組裝模塊輸出。所述的帶保護字的二維游程長度受限約束的編解碼器的使用方法,是通過編碼器實現編碼過程,依次包括以下步驟S101)首先根據二維數據記錄裝置的存儲大小,將大小為2NX2M的二維數據頁以 2 X 2的字單元為一組,劃分成包含NXM個大小相同的二維數據字單元的數據頁,然后判斷該數據頁中可編碼的位數;S102)數據緩沖及分組模塊將輸入的二進制一維數據流均勻地劃分成若干一維數據字塊,每個數據字塊包含數目等于一個數據頁中可編碼位數的數據,然后對每塊中的數據按2比特一組劃分成若干一維數據字,并將數據字輸入到數據緩沖區暫存;S103) 二維碼字生成模塊從數據緩沖區讀取一個數據字塊,選取編解碼規則表將當前數據字塊中的所有一維2比特數據字轉化成相應的2X2 二維約束碼字;S104) 二維字單元頁構造模塊將二維數據頁劃分成若干個以2X2的二維數據子陣列為最小讀取單元的二維字單元頁,與步驟Sioi得到的數據頁相對應;S105) 二維碼字寫入陣列模塊將步驟S103)得到的2X 2 二維約束碼字以步驟 S104得到的二維字單元頁的字單元行為基準,沿二維字單元頁斜線方向的奇數行,從右上角到左下角依次將二維數據字寫入大小等于2X2的字單元中,直至該行的字單元全部被寫入為止;S106)判斷是否有下一個斜線方向的奇數行尚未寫入,若有轉至步驟S105 ;若二維字單元頁奇數行的所有字單元被寫滿二維數據字,則進入下一步;S107)保護字填充模塊根據步驟S10;3)選取的編解碼規則表,選取對應的二維保護字,沿二維字單元頁斜線方向的偶數行,從右上角到左下角依次將該二維保護字填充到
6字單元中,直至該行的所有字單元全部被填滿為止;S108)判斷是否有下一個斜線方向的偶數行尚未填滿,若有轉至步驟S107 ;若所有偶數行的二維字單元被填滿二維保護字,進入下一步;S109)判斷是否還有未編碼的一維數據字塊,若有轉至步驟S103 ;否則結束編碼過程。所述的帶保護字的二維游程長度受限約束的編解碼器的使用方法,是通過解碼器實現解碼過程,依次包括以下步驟S201)將從二維數據記錄裝置讀取的二維數據陣列暫時存放在二維數據緩沖模塊中;S202) 二維字單元頁構造模塊讀取大小為2NX2M的二進制數據陣列,將該二維數據陣列以2X2為最小讀取單元進行均勻劃分,形成大小等于NXM的二維字單元頁;S203) 一維數據字譯碼模塊以該二維字單元頁的字單元行為基準,沿字單元頁斜線方向的奇數行,依據編碼器編碼順序,從右上角到左下角依次讀取字單元數據,根據編解碼表譯碼出相應的一維2比特數據字;S204)判斷是否有下一個斜線方向的奇數行尚未譯碼,若有轉至步驟S203 ;若二維字單元頁的奇數行所有字單元被譯碼,進入下一步;S205) 一維數據流組裝模塊將得到的一維2比特數據字按照相應的譯碼先后次序進行組裝,獲取對應的一維二進制數據塊;S206)判斷是否還有尚未解碼的二維數據陣列,若有轉至步驟S202 ;否則將上述步驟得到的一維二進制數據塊按照先后順序合并成一維數據流輸出,譯碼結束。本發明的技術效果如下所述1)編碼器是狀態無關的。編碼器狀態數是評價編碼器性能的一個重要指標。狀態無關的編碼器是設計編碼器的最佳選擇。在本發明中,數據在編碼和譯碼過程中,都是分塊獨立的,數據無論是在編碼和譯碼過程中,都和相鄰數據無關,即編碼器是狀態無關的。2) 二維碼字編解碼規則表構造簡單。在本發明中,2X2的二維約束碼字和一維2 比特數據是一一對應的,通過簡單的編解碼規則方程,即可實現一維2比特數據到2X2的二維約束碼字的編碼過程,反之,通過查找2X2陣列的特定數據比特,即可實現一維2比特數據的譯碼。3) 二維保護字是和編解碼規則一一對應的。在本發明中,所述二種編解碼規則,分別對應于不同的二維保護字,即對指定的編解碼規則表,其所需的二維保護字是唯一的,不同的編解碼規則,對應不同的二維保護字,二者不可替代。
圖1是二維數據記錄格式示意圖(全息存儲器)。圖2是一維數據光盤記錄格式示意圖。圖3是滿足二維2D_(1,3)RLL約束的二維數據陣列示意圖。圖4是4個方形格子構成的二維字單元。圖5是二維陣列(6X6)劃分成二維字單元頁(3X;3)示意圖。圖6是兩種編碼解碼規則表;圖6 (a)表示第一種編碼解碼規則表;圖6 (b)表示第
7二種編碼解碼規則表。圖7是二維字單元行序編號示意圖。圖8是編碼器原理框圖。圖9是解碼器原理框圖。圖10是基于圖6 (a)編解碼規則的二維陣列構造造實施例。圖11是基于圖6(a)編解碼規則的二維陣列譯碼實施例。
具體實施例方式本發明適用于將數據按照二維陣列(即頁面)形式記錄的數據存儲系統。系統典型代表有全息全息存儲器及二維光盤等二維新型存儲器。本發明的另一個發明目的是提供兩種二維游程長度受限約束的編碼方法。本發明的另一個目的是提供兩種二維游程長度受限約束的解碼方法。本發明的另一個目的是提供相應的編碼和解碼裝置。針對背景技術提出的問題,本發明給出了兩種二維游程長度受限約束的編解碼方法,即采取本發明給出的編碼方法,能夠保證二進制數據陣列,無論是在水平還是垂直方向上,在連續數據“1”之間,“0”的游程長度最少是1,最多不超過3的約束限制。我們將本發明給出的這種編解碼方法二維(U)游程長度受限約束碼,記為2D-(1,;3)RLL碼。基于本發明給出的方法,因存在二維保護字,所述編碼器的碼率等于1/4,譯碼器在譯碼階段不會產生錯誤傳播,譯碼錯誤僅限于一個數據字即2bits數據,即當前數據的譯碼錯誤不會對后繼數據的譯碼造成影響。為了實現本發明的目的,本發明采取的技術方案是,二維(1,3)RLL約束編碼方法,包括下述步驟第一步首先將大小等于2NX2M的二維數據頁以2X2為一組,劃分成NXM個大小相同的二維字單元頁,然后轉步驟二 ;第二步將輸入的二進制數據流均勻地劃分成數目等于頁面大小的若干塊,然后對每塊中的數據,按兩兩一組劃分成大小等于2的若干一維數據字,每個字可以是如下4個值中的任意一個00,01,10,11,并將這些一維數據字輸入到數據緩沖區暫存,轉步驟三;第三步從緩沖區讀取一維數據字,按照圖6所示編解碼規則表對當前一維數據字進行編碼并轉化成2X 2的二維約束碼字,然后將該2X 2的二維約束碼字以字單元行為基準,沿二維字單元頁斜線方向的奇數行,從右上角到左下角依次將該2X2的二維約束碼字寫入大小等于2 X 2的字單元中,轉步驟四;第四步重復第三步,直至奇數行的所有字單元被寫滿2X2的二維約束碼字為止;轉步驟五;第五步順序沿著二維字單元頁斜線方向的偶數行,從右上角到左下角,依次將和第三步所選編解碼規則表對應的二維保護字填充到字單元中,直至該行的字單元全部被填滿為止;第六步重復第五步,直到編碼結束。解碼步驟如下第一步讀取大小等于2NX 2M的二進制數據陣列,將數據陣列按照2 X 2 二維子陣列的方式進行均勻劃分,形成以2X2為基本讀取單位,大小等于NXM的二維字單元頁;
第二步沿著NXM的二維字單元頁的斜線方向,從右上角到左下角,依次讀取奇數行的二維字單元數據,根據編碼過程所選的編解碼規則表,譯碼出相應的2比特一維數據字;第三步重復第二步,直至二維陣列被譯碼完成;第四步將第二步得到的2比特一維數據字按照譯碼的先后次序進行組裝,產生相應的一維二進制數據塊,轉步驟五;第五步判斷是否輸入下一個2NX2M的二維數據陣列,若是轉步驟一;否則將上述步驟得到的一維二進制數據塊按照先后順序合并成一維數據流并輸出,譯碼結束。為了實現本發明的目的,本發明還提供了實現上述數據編碼方法的編碼器,包括數據緩沖及分組模塊,該模塊在緩沖一維數據流的同時,根據二維陣列的大小,將數據劃分成若干個長度相等的一維數據分組;二維碼字生成模塊,該模塊根據圖6描述的編解碼規則表,生成相應的二維約束碼字,并輸入到二維字單元模塊;二維字單元頁構造模塊,該模塊將二維數據頁劃分成若干個2X2的二維數據子陣列組成的二維字單元頁;二維碼字寫入陣列模塊,該模塊將2X2的二維約束碼字,沿著二維字單元頁斜線方向的奇數行逐行寫入到二維數據陣列中;保護字填充模塊,該模塊依據圖6編解碼規則表,依據上述二維碼字生成模塊所選編解碼規則,選取相應的保護字,沿著二維字單元頁斜線方向,如圖7所示二維字單元頁的偶數行順序,從右上角到左下角,將二維保護字逐行填入到2NX2M的二維數據陣列。為了實現本發明的目的,本發明還提供了實現上述數據解碼方法的編碼器,包括二維數據緩沖模塊,該模塊主要用于暫時存放從二維數據記錄裝置讀取的二維數據陣列;二維字單元頁構造模塊,該模塊主要用于將2NX2M的二維數據陣列劃分成由 2X2為最小讀取單元的NXM的二維字單元頁;一維數據字譯碼模塊,該模塊主要用于將2X2的二維字單元,根據相應的編解碼規則表,譯碼成大小等于2比特的一維數據字;—維數據流組裝模塊,該模塊主要用于將大小等于2比特的一維數字按照產生的先后順序組裝成一維數據流。總之,本發明能將一維數據流轉化成滿足參數指定的游程長度受限的二維數據陣列。所述二維游程長度受限約束編碼方法包括將輸入數據進行分割成特定大小的分組;然后按照對應的編碼規則將2比特的一維數據字轉化成2X2的二維約束碼字;最后將生成的 2 X 2的二維約束碼字和相應的二維保護字根據預先指定方法進行寫入,最終達到上述由數據“0”和“1”構成的二維數據陣列在水平和垂直兩個方向上都滿足約束條件,即數據“0”的游程長度無論是在水平還是在垂直方向上,都滿足最小為1,最多等于3的要求。本發明設計了兩種編解碼規則及其對應的編解碼器,兩種編碼器的碼率均等于1/4。本發明給出的編解碼器是狀態無關的編碼器,因此不會因譯碼錯誤而導致誤碼的災難性傳播,即當前數據譯碼錯誤不會對后繼數據的譯碼造成任何負面影響,譯碼錯誤僅局限于當前2比特數據。下面結合附圖和實施例對本發明作進一步的詳細說明如圖3所示,描述本發明產生的二維數據陣列,該陣列無論是在水平方向還是在垂直方向上,在相鄰數據“1”之間,數據“0”的游程長度都滿足最小等于1,最多不超過3的約束條件。如圖4所示,由2X2個方形格子構造的二維字單元,是編解碼二維陣列的基本單位數據。如圖5所示,將大小等于6X6的二維陣列,轉化為大小等于3X3的二維字單元頁,用這種方式可完成將一維數據流寫入到滿足2D-(1,3)RLL約束限制的二維數據陣列中。如圖6所示,圖6(a)給出的是第一種編解碼規則表以及相應的保護字,在該編解碼規則中,00,01,10和11這四個數據分別用大小等于2X 2的二維約束碼字來代替,同時在編碼過程中,為了滿足相應的約束限制,需要一個特殊的二維陣列來保護這4個二維約束
碼字,該特殊的二維陣列稱為二維保護字,在第一種編碼規則中,這個二維保護字為=。如
圖6(a)所示,在該編解碼規則表中,一維數據字用X= [X1 X2]表示,二維約束碼字如下所
示
權利要求
1.帶保護字的二維游程長度受限約束的編解碼器,其特征在于包括編碼器和解碼器, 所述編碼器包括數據緩沖及分組模塊,該模塊在緩沖接收一維數據流的同時,根據二維數據頁的大小, 將數據劃分成若干個長度相等的分組;二維碼字生成模塊,該模塊根據編解碼規則表,將2比特的一維數據生成2X2的二維約束碼字;二維字單元頁構造模塊,該模塊將二維數據頁劃分成若干個2X2的二維數據子陣列組成的二維字單元頁;二維碼字寫入陣列模塊,該模塊將2X2的二維約束碼字,沿著二維字單元頁斜線方向的奇數行逐行寫入到二維數據陣列中;保護字填充模塊,該模塊依據二維碼字生成模塊所選編解碼規則表選取相應的二維保護字,并沿二維字單元頁斜線方向的偶數行順序,將二維保護字逐行填入到二維數據陣列;上述五個模塊依次連接,最后通過其中的保護字填充模塊輸出給二維數據記錄裝置; 所述解碼器包括二維數據緩沖模塊,該模塊暫時存放從二維數據記錄裝置讀取的二維數據陣列; 二維字單元頁構造模塊,該模塊將二維數據陣列劃分成由2X2的二維數據子陣列為最小讀取單元的二維字單元頁;一維數據字譯碼模塊,該模塊將2X2的二維約束碼字,根據相應的編解碼規則表譯碼成大小等于2比特的一維數據字;一維數據流組裝模塊,該模塊將一維數據字按照產生的先后順序組裝成一維數據流; 上述五個模塊依次連接,最后通過其中的一維數據流組裝模塊輸出。
2.根據權利要求1所述的帶保護字的二維游程長度受限約束的編解碼器的使用方法, 其特征在于通過編碼器實現編碼過程,依次包括以下步驟5101)首先根據二維數據記錄裝置的存儲大小,將大小為2NX2M的二維數據頁以2X2 的字單元為一組,劃分成包含NXM個大小相同的二維數據字單元的數據頁,然后判斷該數據頁中可編碼的位數;5102)數據緩沖及分組模塊將輸入的二進制一維數據流均勻地劃分成若干一維數據字塊,每個數據字塊包含數目等于一個數據頁中可編碼位數的數據,然后對每塊中的數據按2 比特一組劃分成若干一維數據字,并將數據字輸入到數據緩沖區暫存;5103)二維碼字生成模塊從數據緩沖區讀取一個數據字塊,選取編解碼規則表將當前數據字塊中的所有一維2比特數據字轉化成相應的2X2 二維約束碼字;5104)二維字單元頁構造模塊將二維數據頁劃分成若干個以2X2的二維數據子陣列為最小讀取單元的二維字單元頁,與步驟SlOl得到的數據頁相對應;5105)二維碼字寫入陣列模塊將步驟S103)得到的2X2 二維約束碼字以步驟S104得到的二維字單元頁的字單元行為基準,沿二維字單元頁斜線方向的奇數行,從右上角到左下角依次將二維數據字寫入大小等于2X2的字單元中,直至該行的字單元全部被寫入為止;5106)判斷是否有下一個斜線方向的奇數行尚未寫入,若有轉至步驟S105;若二維字單元頁奇數行的所有字單元被寫滿二維數據字,則進入下一步;5107)保護字填充模塊根據步驟S10;3)選取的編解碼規則表,選取對應的二維保護字, 沿二維字單元頁斜線方向的偶數行,從右上角到左下角依次將該二維保護字填充到字單元中,直至該行的所有字單元全部被填滿為止;5108)判斷是否有下一個斜線方向的偶數行尚未填滿,若有轉至步驟S107;若所有偶數行的二維字單元被填滿二維保護字,進入下一步;5109)判斷是否還有未編碼的一維數據字塊,若有轉至步驟S103;否則結束編碼過程。
3.根據權利要求1所述的帶保護字的二維游程長度受限約束的編解碼器的使用方法, 其特征在于通過解碼器實現解碼過程,依次包括以下步驟5201)將從二維數據記錄裝置讀取的二維數據陣列暫時存放在二維數據緩沖模塊中;5202)二維字單元頁構造模塊讀取大小為2NX2M的二進制數據陣列,將該二維數據陣列以2X2為最小讀取單元進行均勻劃分,形成大小等于NXM的二維字單元頁;5203)一維數據字譯碼模塊以該二維字單元頁的字單元行為基準,沿字單元頁斜線方向的奇數行,依據編碼器編碼順序,從右上角到左下角依次讀取字單元數據,根據編解碼表譯碼出相應的一維2比特數據字;5204)判斷是否有下一個斜線方向的奇數行尚未譯碼,若有轉至步驟S203;若二維字單元頁的奇數行所有字單元被譯碼,進入下一步;5205)一維數據流組裝模塊將得到的一維2比特數據字按照相應的譯碼先后次序進行組裝,獲取對應的一維二進制數據塊;5206)判斷是否還有尚未解碼的二維數據陣列,若有轉至步驟S202;否則將上述步驟得到的一維二進制數據塊按照先后順序合并成一維數據流輸出,譯碼結束。
4.根據權利要求2或3所述的方法,其特征在于,所述編解碼表見下表
5.根據權利要求2或3所述的方法,其特征在于,所述編解碼表見下表
全文摘要
本發明提供了一種帶保護字的二維游程長度受限約束的編解碼器及其使用方法,該編解碼器包括編碼器和解碼器,所述編碼器包括數據緩沖及分組模塊、二維碼字生成模塊、二維字單元頁構造模塊、二維碼字寫入陣列模塊、保護字填充模塊,上述五個模塊依次連接,最后通過其中的保護字填充模塊輸出給二維數據記錄裝置;所述解碼器包括二維數據緩沖模塊、二維字單元頁構造模塊、一維數據字譯碼模塊、一維數據流組裝模塊,上述五個模塊依次連接,最后通過其中的一維數據流組裝模塊輸出。本發明的編解碼方法和裝置能解決由“0”和“1”構成的二維數據陣列在兩個方向上均滿足(1,3)RLL約束的二維(1,3)RLL的技術問題。
文檔編號G11B27/031GK102298953SQ201110148840
公開日2011年12月28日 申請日期2011年6月3日 優先權日2011年6月3日
發明者劉繼斌 申請人:武漢紡織大學