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

生成與讀出可變長度代碼字數(shù)據(jù)流的方法和設(shè)備的制作方法

文檔序號:7508196閱讀:258來源:國知局
專利名稱:生成與讀出可變長度代碼字數(shù)據(jù)流的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及用可變長度代碼字進行的編碼,具體地說,是涉及生成與讀取傳輸中抗差錯能力強的具有可變長度代碼字的數(shù)據(jù)流。
例如,按照MPEG層3標準工作的現(xiàn)代音頻編碼或解碼方法能夠?qū)σ纛l信號的數(shù)據(jù)率壓縮例如因數(shù)12,而不會使其質(zhì)量明顯下降。為實現(xiàn)這種高數(shù)據(jù)率的縮減,對一個音頻信號進行采樣,以獲得一個時間離散的采樣值序列。如業(yè)內(nèi)所知的,對該時間離散的采樣值序列取一窗口以便獲得有界的時間采樣值組。然后,一個時間窗采樣值組通過濾波器組(filter bank)、修正余弦離散變換(MDCT)或其他適合的設(shè)備被轉(zhuǎn)換成頻率范圍,以便獲得整體上表示音頻信號的頻譜值,即在該頻率范圍內(nèi)由時間離散的采樣值組確定的時間段。通常,通過MDCT生成相互間重迭50%的時間組值,并且該時間值組被轉(zhuǎn)換成頻率范圍,由于MDCT的特性,例如1024個時間離散的采樣值總是產(chǎn)生1024個頻譜值。
眾所周知,人的聽力取決于音頻信號本身的瞬間頻譜。這種依賴性屬于所謂的心理聽覺模式,通過該模式,在相當長的時間里依據(jù)該瞬間頻譜對掩蔽閾值進行計算一直是可行的。掩蔽(masking)意指在例如相鄰的頻譜范圍,具有相對較高的能量的情況下,一個特定的單音或一個頻譜分量被掩蔽起來。為了盡可能接近地量化轉(zhuǎn)換之后出現(xiàn)的頻譜值,掩蔽的這一作法得到了應(yīng)用。因此該目的一方面在于避免重新編碼的音頻信號中的可聽見的干擾,另一方面在于使用盡可能少的位來編碼或者,在這一情況下,來量化音頻信號。由量化引起的干擾,即量化噪聲,應(yīng)當?shù)陀谘诒伍撝?,因此,是聽不見的。根?jù)已知的方法,對所謂的比例系數(shù)頻帶(scale factor bands)中的頻譜值進行分類,這種分類應(yīng)與人耳的臨界頻帶,即頻率組相符。一個比例系數(shù)組中的頻譜值乘以一個比例系數(shù)以便對一個比例系數(shù)頻帶中的頻譜值進行整體換算。經(jīng)比例系數(shù)換算的比例系數(shù)頻帶則被量化,以此生成經(jīng)過量化的頻譜值??梢岳斫猓壤禂?shù)頻帶的分組并非關(guān)鍵性的。然而,它卻在MPEG層3標準或者在MPEG 2 AAC標準(AAC=先進音頻編碼)中得到應(yīng)用。
數(shù)據(jù)縮減的一個根本的方面在于量化之后的平均信息量編碼。Huffman(霍夫曼)編碼通常用于平均信息量編碼。Huffman編碼被理解為它意味著用一個可變長度來進行編碼,即被編碼的值的代碼字的長度取決于它出現(xiàn)的概率。從邏輯上講,概率最大的字符被分配給最短的代碼,即最短的代碼字,以便通過Huffman編碼實現(xiàn)良好的冗余縮減。一個公知的用一般長度進行編碼的例子是Morse代碼。
在音頻編碼領(lǐng)域,Huffman代碼用于對經(jīng)過量化的頻譜值進行編碼?,F(xiàn)代的音頻編碼器,例如根據(jù)MPEG 2 AAC標準工作的編碼器,使用不同的Huffman代碼表對量化的頻譜值進行編碼,而該代碼表是以逐段進行為基礎(chǔ)按照某些條件分配給該頻譜的。在這一過程中,總是把2個或4個頻譜值一起編碼于一個代碼字中。
根據(jù)MPEG 2 AAC的方法與根據(jù)MPEG層3的方法之間的一個差別是不同的比例系數(shù)頻帶,即不同的頻譜值,被分組歸入任意數(shù)量的頻譜段。對于AAC,一個頻譜段包括至少4個頻譜值,但最好是多于4個頻譜值。這些頻譜值的整個頻率范圍因此而被分成相臨的頻段,一個頻段表示一個頻帶,這樣,所有的頻段就共同覆蓋了由經(jīng)轉(zhuǎn)換后的頻譜值合成的整個頻率范圍。
比如在MPEG層3方法中,一個頻段被分配給一個選自多個這種表格的所謂的“Huffman表”,以便實現(xiàn)最大的冗余縮減。在AAC方法的通常含有1024個頻譜值的位流中,現(xiàn)在是按照頻率的上升順序排列的頻譜值的Huffman代碼字。每個頻段中使用的表上的信息以從屬信息的形式傳送。這種情形在圖6中示出。
圖6示出了位流包括10個Huffman代碼字的示例。在一個代碼字總是由一個頻譜值形成的情況下,這里就可以對10個頻譜值進行編碼。然而,通??偸?個或4個頻譜值用一個代碼字共同編碼,這就是圖6示出包括20或40個頻譜值的一部分編碼位流的原因。在每個Huffman代碼字包括2個頻譜值的情況下,數(shù)字1標定的代碼字表示前2個頻譜值,第一個代碼字的長度比較短,這意味著前兩個頻譜值的值,即兩個最小的頻率系數(shù),出現(xiàn)的比較頻繁。而帶有數(shù)字2的代碼字卻有較長的長度,這意味著已編碼的音頻信號中第3和第4個頻譜系數(shù)的量值較少,這就是它們被用一個較多的位來編碼的原因。還有,從圖6中可以清晰地看出,具有數(shù)字3、4和5的代碼字也出現(xiàn)得較頻繁,因為各代碼字的長度較小,數(shù)字3、4和5表示頻譜系數(shù)5與6或7與8或9與10。同樣的分析合適于帶有數(shù)字6至10的代碼字。
正如已經(jīng)提到的,從圖6中顯然可以清晰地看出,在考慮用已知的編碼設(shè)備生成位流的情況下,用于對頻譜值編碼的Huffman代碼字以與頻率相關(guān)的線性增長方式被安排在位流中。
在信道出現(xiàn)故障的情況下,Huffman代碼的一個主要的缺陷是差錯的擴散。例如,可以假定圖6中的第二個代碼字受到干擾。存在某一個不低的概率,即該差錯的第二個代碼字的長度也會被改變。因此它就不同于正確的長度。如果,在圖6的例子中,第二個代碼字的長度由于一個干擾而被改變,對于一個編碼器而言就不再可能確定代碼字3至10的起點,即所表示的幾乎整個音頻信號的起點。這就意味著跟隨在已被干擾的代碼字后面的所有其他代碼字就不能再被正確編碼,因為不知道這些代碼字從哪里開始,并且因為由于該差錯而選擇了一個不正確的起點。
作為對該差錯擴散問題的一個解決方法,歐洲專利0612156號建議將可變長度的代碼字的一部分安排在一個柵格(raster)中,并把余下的代碼字分散于余下的空隙中,以便安排在一個柵格點(raster point)的一個代碼字的起點能在不進行全面解碼的情況下或者在不正確傳輸?shù)那闆r下更容易找到。
確實,該已知的方法通過重新安排代碼字的方式對差錯的擴散提供了一些補救。對于某些代碼字而言,在位流中確定一個固定位置,余下的空隙供余下的代碼字使用。這并不耗費任何附加的位,卻能防止在出現(xiàn)差錯的情況下差錯在重新安排的代碼字之間擴散。
然而,該已知方法的效率上的一個決定性的參數(shù)取決于在實際應(yīng)用中確定柵格的方式,即必須使用多少個柵格點,以及該柵格所必須具有的間隔等除了使用一個柵格來抑制差錯擴散的一般性建議之外,歐洲專利0612156號并未給出有關(guān)如何有效地設(shè)計該柵格以便一方面能夠進行耐差錯的編碼另一方面又能夠高效編碼的任何更為詳細的信息。
在本申請?zhí)峤蝗罩蟀l(fā)布的德國1947119.631號專利申請建議,不是把任何代碼字都定位于柵格點上,而是把那些從心里聽覺(psycho-acoustic)的角度來看具有特殊意義的代碼字,即那些能夠?qū)σ纛l信號起重要作用頻率值的代碼字定位于柵格點上。在圖5中示出了由這樣的一個編碼器生成的一個具有可變長度代碼字的數(shù)據(jù)流。和圖6中一樣,該數(shù)據(jù)流也包括10個代碼字,畫影線的為具有優(yōu)先權(quán)的代碼字。第一優(yōu)先權(quán)代碼字被定位于在第一柵格點100開始,第二個優(yōu)先權(quán)代碼字被定位于在第二個柵格點101開始,第三個優(yōu)先權(quán)代碼字被定位于在第三個柵格點102開始,第四個優(yōu)先權(quán)代碼字被定位于在第四個柵格點103開始而第五個優(yōu)先權(quán)代碼字被定位于在第五個柵格點104開始。第一節(jié)(segment)105由柵格點100和101定義。以同樣的方式,對第二節(jié)106,第三節(jié)107,第四節(jié)108以及最后一節(jié)109進行定義。圖5中示出,前兩節(jié)105和106的長度與107和108兩節(jié)的長度不同,而且還與最后一節(jié)109的長度不同??梢哉f,無優(yōu)先權(quán)的代碼字6,7,8,9與10則在優(yōu)先權(quán)代碼字之后被插入該數(shù)據(jù)流中,以使數(shù)據(jù)流被填滿。如圖5中所示,在該后公布的方法中,無優(yōu)先權(quán)的代碼字接在被寫入的優(yōu)先權(quán)代了之后被連續(xù)插入該柵格中。具體地講,無優(yōu)先權(quán)的第6個代碼字跟在無優(yōu)先權(quán)代碼字1的后面被寫入。105節(jié)中剩下的空隔被后隨的無優(yōu)先權(quán)代碼字7填入,而無優(yōu)先權(quán)代碼字7的剩余部分即7b,則緊隨在優(yōu)先權(quán)代碼字3的后面被寫入下一空隔即107節(jié)中。無優(yōu)先權(quán)代碼字8至10執(zhí)行同樣的過程。
在圖5中示出的該后公布的方法的優(yōu)點是優(yōu)先權(quán)代碼字1至5受到保護而免于差錯擴散的影響,因為它們的起點與柵格點重合并因此而被知曉。
例如,如果優(yōu)先權(quán)代碼字2在傳輸中受到破壞,則在圖6中所示的現(xiàn)有技術(shù)中很可能解碼器將不能對余下的任何代碼字3至10正確地進行解碼。然而在圖5所示的方法中,下一個代碼字,即優(yōu)先權(quán)代碼字3,在柵格點102開始,這樣,該解碼器總會找到代碼字3的正確起點。因此,在圖5所示的方法中,不會有什么系列差錯出現(xiàn),而只是優(yōu)先權(quán)代碼字2將被破壞。因此,該方法對定位于柵格點的優(yōu)先權(quán)代碼提供了有效的保護。
然而,對于無優(yōu)先權(quán)代碼字沒有有效的保護。參見圖5,破壞無優(yōu)先權(quán)代碼字6,以至解碼器把短了一位的一個代碼字設(shè)想為不正確的代碼字6,這將導(dǎo)致不再能夠正確地對代碼字7進行解碼,因為正確的代碼字6的最后一位被解釋為下一個代碼字7的開始。因此,代碼字6中的一個差錯將導(dǎo)致由于序列差錯而非??赡懿辉倌軌?qū)ΩS在它后面的任何代碼字進行正確解碼,即使它們并未受到傳輸差錯的影響。
本發(fā)明的目的是找出一種寫入與讀出可變長度代碼字數(shù)據(jù)流的基本原理,以提供防止由于不理想的數(shù)據(jù)流傳輸而引起的序列差錯的具體保護方法。
通過根據(jù)權(quán)利要求1的生成一個數(shù)據(jù)流的方法,及通過根據(jù)權(quán)利要求15的讀出一個數(shù)據(jù)流的方法,并通過根據(jù)權(quán)利要求20的生成一個數(shù)據(jù)流的設(shè)備以及根據(jù)權(quán)利要求21的讀出一個數(shù)據(jù)流的設(shè)備,該目的得以實現(xiàn)。
本發(fā)明的是基于認識到具有可變長度代碼字的一個數(shù)據(jù)流必須如此配置使得于該數(shù)據(jù)流中的連續(xù)的代碼字必須被盡快分開以使解碼器不會由于一個傳輸差錯而生成數(shù)量非常大的序列差錯。為此,將被傳輸?shù)目勺冮L度的代碼字被分成多個集(set)。第一個集可以包括優(yōu)先權(quán)代碼字,而第二個集可以包括無優(yōu)先權(quán)代碼字。為了也對無優(yōu)先權(quán)代碼字提供保護使之免受傳輸差錯的破壞,它們不能像在現(xiàn)有技術(shù)中那樣被簡單地寫入未被占用的柵格,而是要被分散于各分立的節(jié)中。在對接收器進行已知的固定的分配之后,無優(yōu)先權(quán)代碼字被如此地分配到各節(jié),以致每個無優(yōu)先權(quán)代碼字即來自第二個集的每個代碼字被分配到該數(shù)據(jù)流的一個不同的節(jié)。為使這一做法奏效,每個集只能具有與供該數(shù)據(jù)流使用的節(jié)的數(shù)量相同的代碼字。因此,第一集的代碼字被寫入柵格,使第一集的每個代碼字從一個柵格點開始。然后進行嘗試,把第二個集的每個代碼字如此地寫入數(shù)據(jù)流,使第二個集的每個代碼字被分配到一個不同的節(jié)。由于這種分配,即第二個集的每個代碼字被寫入一個不同的節(jié),解碼器將不再僅連續(xù)地對第二個集的代碼字進行解碼,而是轉(zhuǎn)至在該柵格中為第二個集的每個代碼字設(shè)置的相應(yīng)的節(jié)以便從該節(jié)中提取第二個集的相應(yīng)的代碼字。
如果,第一個集的代碼字已被寫入一個節(jié)之后,該節(jié)已滿到只有部分空間可供分配給該節(jié)的第二集的代碼字使用或者根本就沒有空間了,則仍有空間的第二集的代碼字的那部分被寫入所分配的該節(jié),余下部分被儲存起來。如果對該代碼字已完全沒有空間,則該代碼字被整個地儲存起來,直至第二集的每個代碼字的分配已被嘗試。只有當此時才進行第二次嘗試,把第二個集的被儲存的部分的或被儲存的完整的代碼字按照預(yù)定的規(guī)則寫入仍未被占用的節(jié)的部分中。
在柵格的配置使第一個集的代碼字中有比該節(jié)的長度要長的代碼字的情況下,可以盡早地采用相同的方法來寫入第一個集的代碼字。
一旦一個解碼器從數(shù)據(jù)流中提取了從柵格點開始的第一個集的代碼字,它將繼續(xù)提取第二個集的代碼字。在解碼器只找到第二集代碼字的一部分的代碼字的情況下,該部分將被存儲起來而該處理則繼續(xù)在一個不同的節(jié)中尋找第二集的下一個代碼字。僅在所有的節(jié)均在這種第一次嘗試中被搜索之后,第二個集的一個代碼字的缺失部分將在第二次或以后嘗試中被確定,或者其所分配的節(jié)已被第一集的代碼字占用的第二集的一個代碼字被確定。
參見圖5,代碼字6中的一個差錯將因此而不再會導(dǎo)致代碼字7中的一個差錯,因為代碼字7會在一個與節(jié)105不同的節(jié)中開始,而且代碼字6的后面將是一個完全不同的不與其相鄰的代碼字。
為了進一步地說明,可以使用一個簡單的例子。該例子是基于假設(shè)存在第一集的兩個代碼字和第二集的兩個代碼字,也就是說總共四個可變長度的代碼字。為了與現(xiàn)有技術(shù)比較,進一步假定代碼字1與3加在一起的長度足以填入第一個節(jié),而代碼字2與4加在一起的長度,足夠完全填入第二個節(jié)。在這種情況下,根據(jù)現(xiàn)有技術(shù)的一個設(shè)備與根據(jù)本發(fā)明的一個設(shè)備一樣對相同的數(shù)據(jù)進行寫操作。根據(jù)現(xiàn)有技術(shù)的設(shè)備首先會把優(yōu)先權(quán)代碼字1與2寫入兩個柵格點,然后在代碼字1的后面寫入代碼字3并把代碼字4寫入柵格中未被占用的下一個空隔,也就是說寫在代碼字2的后面。純粹是巧合,代碼字4因此而不再(至少是部分地)位于第一節(jié)中,而是完全位于第二節(jié)中。
根據(jù)本發(fā)明的一個設(shè)備一開始將把第一集的代碼字寫至相應(yīng)的柵格點并且然后將把第二集的第一個代碼字寫入第一節(jié)中并把第二集的第二個代碼字寫入第二節(jié)中,而無論在第一節(jié)中是否仍有空間。根據(jù)該發(fā)明的該設(shè)備無論如何都要因此而嘗試把第二集的每個代碼字寫入不同的節(jié)中。
即使由于巧合兩個數(shù)據(jù)流看起來相同,對于將從該數(shù)據(jù)流中提取可變長度代碼字以便根據(jù)解碼器要求的順序安放它們的接收器而言仍將出現(xiàn)明顯的差別。在現(xiàn)有技術(shù)中,一個用于提取的設(shè)備一開始將讀出第一個柵格點的代碼字1和第二個柵格點的代碼字2,以便獲得第一集的代碼字。然后,根據(jù)現(xiàn)有技術(shù)的一個設(shè)備將轉(zhuǎn)至余下的數(shù)據(jù)流的開端并在那里讀取代碼字3,并接著讀取代碼字4。
根據(jù)本發(fā)明的一個設(shè)備,在讀取第一集的代碼字1與2之后,也將轉(zhuǎn)至余下的數(shù)據(jù)流的開始端并在那里讀取代碼字3。然而,根據(jù)該發(fā)明的設(shè)備將在此后跳至下一節(jié)以便讀取第四個代碼字的開始端,即第二集的第二個代碼字。
下面,將假設(shè)第三個代碼字,即在假定的數(shù)據(jù)流中將被寫在第一集的第一個代碼字后面的第二集的第一個代碼字,已經(jīng)受到干擾,以致解碼器將把這同一個代碼字理解為比其實際長度要短的一個代碼字。在這種情況下用于讀取數(shù)據(jù)流的該已知設(shè)備將讀取第三個代碼字并將由于該傳輸差錯而非??斓赝V共⑴卸▽嶋H上屬于第三個代碼字的余下的一位或多位是第四個代碼字的開始端。然而,根據(jù)本發(fā)明的設(shè)備將跳至在第三個代碼字被終止后的下一節(jié),并將因此而正確地確定第四個代碼字的開端。
通過使用這一簡單的例子,從中可以清楚地看出本發(fā)明的最重要的優(yōu)點,即由于把第二集的代碼字分到獨立的節(jié),而在第二集的代碼字,比如說也可以是無優(yōu)先權(quán)代碼字中防止序列差錯。然而,在現(xiàn)有技術(shù)中,正如參照圖5所描述的,即使由現(xiàn)有技術(shù)以及由本發(fā)明生成的可變長度代碼字的數(shù)據(jù)流由于巧合而可能是相同的,序列差錯也會出現(xiàn)。
下面將參照附圖對本發(fā)明的優(yōu)選實施例進行詳細解釋,其中

圖1示出了所發(fā)明的用于生成一個可變長度代碼字數(shù)據(jù)流的設(shè)備;圖2示出了所發(fā)明的用于讀取具有可變長度代碼字的數(shù)據(jù)流的設(shè)備;圖3通過可變長度代碼字的三個集示出了所發(fā)明的方法的一個程序圖;圖4示出了用于說明所發(fā)明的讀取根據(jù)圖3生成的一個數(shù)據(jù)流的方法的一個程序圖;圖5示出了由一個已知設(shè)備生成的并且其中的優(yōu)先權(quán)代碼字受到差錯擴散影響的一個數(shù)據(jù)流;圖6示出了已在其中按照優(yōu)先權(quán)代碼字與無優(yōu)先權(quán)代碼字進行分類的一個數(shù)據(jù)流。
在對圖1進行更為詳細的描述之前,應(yīng)該注意,在技術(shù)上對于可變長度代碼字的編碼也稱作平均信息量編碼。平均信息量編碼的一個典型例子是所謂的Huffman編碼。原則上,在Huffman編碼中,對被編碼的信息符號進行統(tǒng)計分析以便確定用于比不大頻繁出現(xiàn)的信息符號更頻繁出現(xiàn)的信號符號的較短的代碼字。在一個完整的Huffman代碼中,所有的代碼字均終止于一棵代碼樹的端點或分枝。例如,一個Huffman解碼器連續(xù)地讀入一個具有Huffman代碼字的數(shù)據(jù)流,并通過圖解的方法,跳至具有它額外讀入的每一位的該指定的代碼樹的一個分枝,在經(jīng)過一定數(shù)量的跳轉(zhuǎn),即與該代碼字的位數(shù)亦即該代碼字的長度相對應(yīng)的數(shù)量的跳轉(zhuǎn)之后,它到達不再具有進一步分枝的、并因此而是一個代碼字的一個枝端。該解碼器于是獲知一個新的代碼字從下一位開始。每有要求,該處理即重復(fù)一次,直至該數(shù)據(jù)流被完全讀入為止。每次當Huffman編碼器跳回起始點,即該樹的根部時,一個代碼字即在其始點出現(xiàn)。由于代碼字的長度是由代碼字自身或由編碼器及解碼器中已知的代碼樹默定的,可以看出,數(shù)據(jù)流中導(dǎo)致一個位錯位的一個干擾會在代碼樹中對解碼器產(chǎn)生誤導(dǎo),可以說這將使解碼器結(jié)束于一個不同的代碼字,即可能具有與正確的代碼字不同長度的一個錯誤的代碼字。在這種情況下,一旦到達錯誤的代碼字,解碼器將向回跳轉(zhuǎn),而且由于后隨的位,再次從代碼樹中的一個分枝點向另一個分枝點運動。然而,對于該解碼器而言,避免序列差錯是不可能的,除非其巧合地結(jié)束于“正確的跟蹤目標”。
因此,差錯防護,比如由本發(fā)明提供的差錯防護,必須進行,以保證耐差錯的傳輸。因此,可以說,根據(jù)本發(fā)明的用于生成一個可變長度代碼字數(shù)據(jù)流的設(shè)備可以作為Huffman編碼器的發(fā)送或輸出級,而用于讀取可變長度代碼字數(shù)據(jù)流的設(shè)備則可以作為Huffman編碼器的接收或輸入級。由此可以看出,本發(fā)明不僅適用于Huffman編碼器,而且也適用于易于出現(xiàn)序列差錯的具有可變長度代碼字的任何代碼。
圖1示出了一個所發(fā)明的用于生成一個可變長度代碼字數(shù)據(jù)流的設(shè)備10,該設(shè)備具有一個輸入端口和一個輸出端14。在輸入端12,可變長度代碼字生成,而在輸出端14,耐差錯的數(shù)據(jù)流被輸出。最好設(shè)備10的輸入端12處的可變長度代碼字事先已進行了預(yù)分類,使得優(yōu)先權(quán)代碼字處于第一集,較不重要的代碼字處于第二集而更不重要的代碼字處于第三集,等等。
該可變長度代碼字被輸入到用于把第一集的代碼字寫入數(shù)據(jù)流的一個設(shè)備16中,這就使第一集的代碼字各自從柵格點開始。
此外,該可變長度代碼字被輸入到用于把第二集的代碼字寫入數(shù)據(jù)流的一個設(shè)備18中,并為第二集的每個代碼字分配一個不同的節(jié)。因此,在兩個設(shè)備16與18之間的數(shù)據(jù)流中,只有第一集的所有代碼字被送至柵格點。在可變長度代碼字僅由兩個集的代碼字組成的情況下,則耐差錯的數(shù)據(jù)流已經(jīng)出現(xiàn)在設(shè)備18的輸出端。在存在多于兩個集的可變長度代碼字的情況下,還有用于把相應(yīng)集的代碼字寫入數(shù)據(jù)流的其他設(shè)備,用標號20以符號形式示出。
圖2示出了所發(fā)明的用于讀取在輸出端14(圖1)輸出的耐差錯數(shù)據(jù)流的一個設(shè)備22,其具有一個輸入端24和一個輸出端26。在輸入端24輸入耐差錯的數(shù)據(jù)流,以便在輸出端26輸出其順序與在輸入端12(圖1)形成的順序相對應(yīng)的可變長度代碼字。用于讀取數(shù)據(jù)流的設(shè)備22包括用于通過跳至柵格點的方式提取第一集的代碼字的一個設(shè)備28,用于通過跳至余下的數(shù)據(jù)流的柵格點的方式提取第二集的代碼字的一個下游設(shè)備30以及,如果必要,用于提取和其他的集一致的代碼字的其他設(shè)備32,如果存在這樣的集的話。
在以圖3為基礎(chǔ),通過一個例子對由設(shè)備10(圖1)實現(xiàn)的方法進行詳細解釋之前,首先將給出該方法的概要??捎玫拇a字被分成多個集。除了最后一個之外,每個集包括與所存在的可用的節(jié)一樣多的代碼字。在最佳的情況下,一個集含有與所存在的可用的節(jié)一樣多的代碼字。然而,一個集也可以含有更多或者更少的代碼字,正如對于最后一個集而言幾乎必將是這種情況,因為可變長度代碼字的預(yù)定數(shù)量必須假定。如果存在M個節(jié)而且如果一個集有N個代碼字,則被寫至柵格點的代碼字的數(shù)量與M和N中的最小者一致,而在根據(jù)該發(fā)明的柵格中存放該N個代碼字的嘗試的次數(shù)則與M和N中的最大者一致。
最好是,第一集有最重要的代碼字,即表示與其他的信息符號相比更為重要的信息符號的優(yōu)先權(quán)代碼字。接下來的集中含有按照由一個預(yù)選算法提供的順序排列的較不重要的代碼字,最好是該算法還對優(yōu)先權(quán)代碼字和無優(yōu)先權(quán)代碼字進行分類。這些集由設(shè)備10連續(xù)地寫入。寫入一個集需要幾次嘗試。在第一次嘗試中,當前集的第一個代碼字被寫入第一節(jié),以此類推,直至當前集的最后一個代碼字被寫入最后一個節(jié)為止。當然,一個代碼字可以按照某一確定的規(guī)則從第二個,從第三個或從任何其他的節(jié)開始繼而寫入每個節(jié)中。
如果一個代碼字不能填入一個節(jié),該代碼字的余下部分則被儲存起來。在第二次嘗試中,第一個代碼字的余下部分,如果存在的話,則被優(yōu)先寫入第二個節(jié),以此類推,直至最后一個代碼字的余下部分被優(yōu)先地寫入第一個節(jié)。這樣的一種算法還被稱為模數(shù)位移(moduloshift)。顯然,在下一輪,即下一次嘗試中,有關(guān)一個代碼字的余下部分是寫入后隨的第一個節(jié)還是后隨的第三個節(jié)的預(yù)定規(guī)則是可以任選的。
一旦一個集被全部寫入,就開始寫下一個集。為了防止擴散差錯,還要根據(jù)該發(fā)明的一個優(yōu)選實施例,改變在一個節(jié)內(nèi)的集與集之間的寫操作方向。例如,第一集的代碼字從左向右寫,而第二集的代碼字從右向左寫,等等。因此,通過本發(fā)明,也可以說,根據(jù)該優(yōu)選的實施例,一個柵格點的第二側(cè)端被用于絕對的差錯防護。
上面簡要概述的系統(tǒng)應(yīng)用能夠非常有力地降低對一個特定代碼字的差錯擴散概率的值。隨著集被連續(xù)寫入以及隨著一個集的每個代碼字被賦分配到一個特定的節(jié)并被寫入該節(jié),如果在該節(jié)中仍有空間,那么沒有差錯從一個集中的一個代碼字向該集中的下一個代碼字擴散就是可能的,因為一個解碼器在解碼時總是從一個節(jié)跳至一個節(jié)而且并不認為一個代碼字的開端位于前一個代碼字結(jié)束的地方,在現(xiàn)有技術(shù)中的事實就是如此。如果由于可用的空間不足以完整送入一個代碼字該代碼字只是部分地被寫入該節(jié)中,則至少差錯擴散的可能性降低了。
根據(jù)本發(fā)明的一個優(yōu)選實施例,節(jié)寬的選擇使優(yōu)先權(quán)代碼字完全填入這些節(jié)。因此,寫第一集只需要一次嘗試。然而,這是任意的。通常,由于目的在于大量的柵格點用于一個數(shù)據(jù)流,即一個節(jié)長要盡可能的小,第一集的代碼字要長于該節(jié)長的情況也可以出現(xiàn)。然而,這種情況會像寫第二個集一樣對待,即,也按照一個必須為編碼器以及為解碼器所知的預(yù)定規(guī)則。
圖3通過一個例子解釋了所發(fā)明的用于寫入可變長度代碼字的方法。在該例中,有15個可變長度代碼字30,被事先分成具有6個代碼字1至6的第一集,也有6個代碼字7至12的第二集以及具有余下的3個代碼字13至15的第三集。如圖3中所示,代碼字30具有可變長度。
根據(jù)本發(fā)明的一個優(yōu)選實施例,節(jié)長,即該節(jié)的長度,要長于第一集的最長的代碼字的長度。第一集的代碼字被安置于柵格點41至46,其中,對于最后的一個節(jié)6,一個未被使用的柵格點由一條點劃線指明,然而,由于該數(shù)據(jù)流的端點47可以說也能被認為是一個柵格點,于是由一條點劃線指明的該柵格點就是多余的了。第一節(jié)6因此而長于其他節(jié),然而這與本發(fā)明完全無關(guān)。一般來講,節(jié)可以有在數(shù)據(jù)流內(nèi)變化的任意長度,因為可以理解,一個節(jié)的當前長度必須為解碼器所知,以便該發(fā)明的優(yōu)點能夠得到利用。
首先,第一集的代碼字在步驟a)中被寫入數(shù)據(jù)流,這將形成由31標明的不連貫的數(shù)據(jù)流,其中第一集的代碼字如在整個圖3中表示寫操作的方向的箭頭48所指明的那樣,從左向右被寫入各自相應(yīng)的節(jié)中。由于選擇的節(jié)長長于第一集的代碼字的最大長度,在步驟a)中只要一次嘗試。如果節(jié)較短,則相應(yīng)地要求較多的嘗試。
現(xiàn)在在步驟b)中把第二集的代碼字寫入數(shù)據(jù)流31。為了實現(xiàn)高耐差錯,第二集的代碼字最好不要像第一集的代碼字那樣從左向右寫,而是如由寫方向的相應(yīng)箭頭指明的那樣,相應(yīng)地從第二個柵格點,例如第一個節(jié)的柵格點42開始從右向左寫。第二集的代碼字的寫入要按照一個預(yù)定的分配法則進行,比如說在選定的例子中,第二集的第一個代碼字將被寫入第一集的第一個代碼字的同一個節(jié)中,然而,總是要以在該節(jié)中仍有空間為條件。從第一次嘗試中形成的數(shù)據(jù)流32表明,在第一個節(jié)中只有供寫入代碼字7的起始段的空間。
和把代碼字第7的第二部分寫入第二節(jié)的現(xiàn)有技術(shù)相比,代碼字第7的第二部分,即7b)被儲存起來以供在第二次嘗試中按照一個預(yù)定規(guī)則,即按照一個也必須為解碼器所知的規(guī)則將其寫入數(shù)據(jù)流。圖3清晰地顯示出,在第二節(jié)中,在代碼字第2與第8之間仍有足夠的空間供代碼字第7的最后部分進入。如果沒有足夠的空間,該代碼字的第三部分將被送入第三節(jié)。這樣,在圖3中,用于把代碼字第7送入數(shù)據(jù)流的預(yù)定規(guī)則就在于在所有的情況下均由一個節(jié)進行處理。當然,也可以由兩個節(jié)或者三個或更多的節(jié)進行,這樣作的結(jié)果,就能使第二個節(jié)7b)在下一次嘗試中被寫入第三個節(jié),被寫入第五個節(jié),等等,而不是第二個節(jié)。被用于在某個地方接收段7的第二部分的節(jié)的順序是任意的。然而,該順序?qū)獯a器必須是透明的,以便被重新分類的數(shù)據(jù)流能被重新讀取。
現(xiàn)在,第三集的代碼字13至15被送入所形成的仍然不連貫的數(shù)據(jù)流33。從步驟b)類推,這最好按照同一分配規(guī)則執(zhí)行,使第三集的第一個代碼字被分配到第一節(jié),第三集的第二個代碼字被分配到第二節(jié),第三集的第三個代碼字被分配給第三節(jié),等等。對于第三集而言該分配規(guī)則完全是任意的并且也可以與用于第二集的分配規(guī)則不同,即根據(jù)該發(fā)明,一個集的每個代碼字被分配給一個不同的節(jié)。
步驟c)中的第一次嘗試僅在把代碼字第15的第一段送入,形成一個不連貫的數(shù)據(jù)流34這一點上是成功的。代碼字13,14與代碼字15的第二段即15b)被儲存起來以供在第二、第三、第四、第五以及第六次嘗試中被接納,其中第二段15b)會在第二次嘗試中被接納于第四節(jié)(數(shù)據(jù)流35),其中在第三次嘗試中沒有任何東西被接納,其中代碼字14的開始段會在第四次嘗試中被接納(數(shù)據(jù)流36),其中代碼字14的最后一段即14b會在第五次嘗試中被接納(數(shù)據(jù)流37)而其中,最后,第三集的第一個代碼字會在第六次并且是最后一次的嘗試中被送入第六節(jié),為在此圖示的例子形成耐差錯的數(shù)據(jù)流38。利用圖3描述的方法保證該耐差錯數(shù)據(jù)流的長度完全相等于這些可變長度代碼字的長度之和,對于用于數(shù)據(jù)縮減的平均信息量編碼而言這是不言而喻的。然而,本發(fā)明并不局限于具有最小長度的耐差錯數(shù)據(jù)流,因為耐差錯是不受可能出現(xiàn)的任何填充位的影響的。
對于圖3中所示的增強型數(shù)據(jù)流,可以看出代碼字8的起點即柵格點43完全獨立于代碼字7的終點。還有,代碼字9的起點即柵格點44完全獨立于代碼字第8的終點。另外,應(yīng)該注意到,由于寫順序相反,第一節(jié)中代碼字第1中的一個數(shù)據(jù)差錯,比如說將由于該數(shù)據(jù)差錯而導(dǎo)致不正確的代碼字比正確的代碼字第1短一位的數(shù)據(jù)差錯,不會導(dǎo)致代碼字7a的起始段的破壞,因為后者是從右向左而不是從左向右寫的。如果它從左向右寫,解碼器會把從一開始的正確代碼字第1余下的一位看作是代碼字第7的起始位,這將導(dǎo)致從1至7的序列差錯。然而,該序列差錯不會擴散至8,因為由于代碼字8所選的寫順序是從右向左因而它還是完全獨立于代碼字7的。如果代碼字第8的寫順序與第一集的代碼字的寫順序相同,差錯就不會從7向8擴散并且,因為代碼字8會由于分配規(guī)則而挨著代碼字2寫在第二部分7b的前面,并且因此而不受不正確段7b的影響。
通過一個恰當?shù)睦?,圖4示出了用于讀取耐差錯數(shù)據(jù)流38的設(shè)備的運行狀況。一開始,在步驟a)從耐差錯的數(shù)據(jù)流提取第一集的代碼字。為此,可以與Huffman解碼器配對使用的所發(fā)明的該設(shè)備從第一個柵格點41開始讀取第一集的代碼字,從第二個柵格點42開始讀取第一集的代碼字第2,等等,直至第一集的所有代碼字1至6被讀入為止。用于讀取數(shù)據(jù)流的設(shè)備選擇與用于生成數(shù)據(jù)流的設(shè)備所使用的方向相同的方向,這是不言而喻的。
接著,在步驟b)從余下的數(shù)據(jù)流50提取第二集的代碼字。這里,解碼器跳至第一節(jié)的第二個柵格點42獲取第二集的代碼字7的起始段,隨后,它并不讀入第二段7b,而是首先儲存7a,以便接著從第二節(jié)的第二個柵格點開始讀入第二集的第二個代碼字,等等。其結(jié)果是一個殘余的數(shù)據(jù)流51,其中的第一節(jié)已被完全騰空。由于該解碼器現(xiàn)在并不連續(xù)讀取代碼字7,而總是根據(jù)用于生成該數(shù)據(jù)流的設(shè)備的分配規(guī)則逐節(jié)地讀取,則已被描述的能夠有力地降低序列差錯擴散的耐差錯就得到了保證。
在提取第二集代碼字的第二次嘗試中,代碼字7b的第二部分根據(jù)現(xiàn)有的寫方向被讀入第二節(jié)中,于是,僅有第三集的代碼字余留于由此產(chǎn)生的數(shù)據(jù)流52中。(第二節(jié)現(xiàn)在是空的。)這些代碼字是在步驟c)中提取的,其中代碼字15的起始段一開始已在第一次嘗試中被確定,然而并不必儲存,因為在第三節(jié)中未曾發(fā)現(xiàn)代碼字15是完整的。第三節(jié)現(xiàn)在也是空的,然而,柵格點仍然存在,以便解碼器能夠用它們?yōu)樽约憾ㄏ?。在第二次嘗試中,能夠發(fā)現(xiàn)代碼字15是完整的。然而,通過數(shù)據(jù)流54可以看出,在節(jié)3中對代碼字14以及在節(jié)14中對代碼字15的搜索仍未成功。盡管如此,在第四次嘗試中,在第5節(jié)中對代碼字14的搜索產(chǎn)生肯定的結(jié)果。然而,代碼字14是不完整的,這就是起始段14a被儲存以便在第五次嘗試中對余下的數(shù)據(jù)55進行檢查,并且在最后的第六次嘗試中全部地讀入數(shù)據(jù)流56的原因,現(xiàn)在數(shù)據(jù)56僅由第六節(jié)并和代碼字13組成。
雖然在前面的例子中,通過舉例,僅對把代碼字分成起始段與結(jié)束段的一個方法進行了說明,但是原則上講,任何類型的方法均是可行的。只要解碼器遵循把第二集的或者第三級的以及其他集的代碼字分別地分配給不同的節(jié),耐差錯的編碼就會得到保證。而且,進入數(shù)據(jù)流的代碼字的結(jié)束段的分類是任意的,只要解碼器或者解碼器的上游讀入電路確知在編碼器中執(zhí)行了哪一個預(yù)定規(guī)則。
權(quán)利要求
1.用于生成可變長度代碼字數(shù)據(jù)流的方法,其中該數(shù)據(jù)流被分成多個代碼字集,一個具有用于該數(shù)據(jù)流的多個柵格點的柵格,兩個相鄰的柵格點(41,42)定義一個節(jié)(40),并且該柵格含有多個節(jié),該方法包括以下步驟a1)寫入第一集的代碼字(1-6)使代碼字的起點位于不同節(jié)的柵格點上;a2)如果一個代碼字比一個節(jié)要長,依照第一個預(yù)定規(guī)則,把該代碼字的余下部分寫入該柵格的在步a1)之后未在上面寫信息的一個區(qū),直至第一集的所有代碼字均被寫入該柵格為止;b1)、如果相應(yīng)的代碼字適合于該節(jié),把第二集的每個代碼字寫入依照一個預(yù)定的分配規(guī)則分配給各個代碼字的一個節(jié),其中第二集的每個代碼字被分配給一個不同的節(jié);b2)如果僅有相應(yīng)的代碼字(7)的一部分適合于所分配的節(jié),或者如果所分配的節(jié)是滿的,把第二集的相應(yīng)的代碼字(7)的部分(7a)寫入所分配的節(jié)(1)并把代碼字(7b)的余下部分或者分配給該滿節(jié)的完整的代碼字(13)儲存起來;b3)依照第二個預(yù)定規(guī)則,把在步驟b1)、b2)中不適合于各自的節(jié)的所儲存的余下部分(7b)或者所儲存的完整的代碼字(13)寫入在步驟b1)與b1)之后未在上面寫入信息的柵格的一個區(qū),直至第二集的所有的代碼字被寫入該柵格為止。
2.如權(quán)利要求1中所要求的方法,在該方法中,第一集的代碼字按照一個順序出現(xiàn),其中這些代碼字被按照它們的順序?qū)懭胂噜彽墓?jié)中。
3.如權(quán)利要求1或2中所要求的方法,在該方法中,在步驟a2)中的第一個預(yù)定的規(guī)則如下i)把第一集的一個代碼字的余下部分的至少一部分寫入跟隨在其中出現(xiàn)該代碼字的起始段的節(jié)的后面的節(jié)中,如果在該節(jié)中存在供該余下部分的至少一部分使用的空間的話,并且ii)如果這樣的代碼字出現(xiàn)的話,對第一集的所有其他代碼字的余下部分執(zhí)行步驟(i);并且iii)執(zhí)行步驟(i)、(ii),其中對于每個余下部分一個余下部分用一個節(jié)執(zhí)行,直至第一集的所有代碼字均被寫入該數(shù)據(jù)流(31)為止。
4.如由前面的任何一個權(quán)利要求所要求的方法,在該方法中,第二集的代碼字按照一個順序出現(xiàn),并且預(yù)定的分配規(guī)則把第二集的第一個代碼字分配給第一集的第一個代碼字的起點所在的節(jié),把第二集的第二個代碼字分配給第一集的第二個代碼字的起點所在的節(jié)并且,如果存在的話,把第一集的每個其他的代碼字分配給其第一集的相對應(yīng)的代碼字起點所在的節(jié)。
5.如由前面的任何一個權(quán)利要求所要求的方法,其中的第二個預(yù)定規(guī)則等同于第一個預(yù)定規(guī)則。
6.如由前面的任何一個權(quán)利要求所要求的方法,其中,依照第一或第二個預(yù)定規(guī)則,如果在緊隨于所分配的仍然留有余下部分的節(jié)的后面的各節(jié)中僅有這么多空間的話,不能完全裝入所分配給的節(jié)的相應(yīng)的集的一個代碼字要分成三個或三個以上的部分。
7.如由前面的任何一個權(quán)利要求所要求的方法,其中的柵格點被等間隔分開,以此獲得除最后一個節(jié)之外的等長節(jié),其中的等長節(jié)要長于或等長于第一個集的最長的代碼字,以使第一集的每個代碼字適合于相應(yīng)的節(jié)。
8.如由前面的任何一個權(quán)利要求所要求的方法,其中第一集的代碼字以第一寫方向分別從各節(jié)的第一個柵格點開始寫入,而其中第二集的代碼字以與第一寫方向相反的第二寫方向分別從各節(jié)的第二個柵格點開始寫入。
9.如在權(quán)利要求8中所要求的方法,其中存在代碼字的第三集,其中在第二集的所有代碼字寫入該柵格后,第三集的代碼字再以第一寫入方向?qū)懭朐摉鸥瘛?br> 10.如由前面的任何一個權(quán)利要求所要求的方法,其中的代碼字是Huffman(霍夫曼)代碼字。
11.如由前面的任何一個權(quán)利要求所要求的方法,其中的代碼字代表信息符號,而其中第一集的代碼字代表比第二集的或者此外的其他集的代碼字更重要的信息符號。
12.如在權(quán)利要求11中所要求的方法,其中的信息符號是一個音頻信號的頻譜值,而第一集的代碼字是從心理聽覺的觀點來看更為重要的頻譜值,其受到保護以免于由于數(shù)據(jù)流中的一個傳輸差錯而引起的任何差錯的擴散。
13.如由前面的一個權(quán)利要求所要求的方法,其中所形成的數(shù)據(jù)流的長度等于可變長度代碼字的長度之和。
14.如由前面的任何一個權(quán)利要求所要求的方法,其中存在兩個以上的代碼字集,該方法還包括以下步驟對代碼字的其他更多的集的代碼字執(zhí)行步驟b1)、b2)和b3),其中的第二個預(yù)定規(guī)則與步驟b2)的第二個預(yù)定規(guī)則對應(yīng),并且其中該預(yù)定分配規(guī)則與步驟b1)的預(yù)定分配規(guī)則相對應(yīng)。
15.用于讀取一個可變長度代碼字數(shù)據(jù)流的方法,其中的數(shù)據(jù)流包括多個代碼字集的代碼字,其中一個柵格被指定用于該數(shù)據(jù)流(38),該柵格包括柵格點(41,42)其中兩個相鄰的柵格點(41,42)定義一個節(jié)(40),其中該數(shù)據(jù)流包括至少兩個節(jié),該方法包括以下步驟a)通過以下各步驟從數(shù)據(jù)流(38)提取第一集的代碼字a1)對于每個節(jié),跳至一個柵格點并讀取在那里開始的一個代碼字;a2)如果從一個柵格點開始的該代碼字在該節(jié)的終點并未結(jié)束,把該代碼字的已讀取的段儲存起來,并且a3)根據(jù)在形成該數(shù)據(jù)流時使用的第一個預(yù)定規(guī)則確定該代碼字的余下部分;b)通過以下各步驟從在步驟(a)之后留下的數(shù)據(jù)流(50)中提取第二個代碼字集的代碼字b1)對于每個余下的節(jié),根據(jù)在形成該數(shù)據(jù)流時使用一個預(yù)定的分配規(guī)則跳至該節(jié)的一個柵格點,并讀取在那里開始的代碼字,以便獲得第二集的代碼字;b2)如果第二集的一個代碼字在一個相應(yīng)的節(jié)的終點并未結(jié)束,把讀取的第二集的該代碼字的段儲存起來;b3)根據(jù)在形成該數(shù)據(jù)流時使用的第二個預(yù)定規(guī)則,確定該代碼字的余下部分或者在一個柵格點未出現(xiàn)的代碼字。
16.如在權(quán)利要求15中所要求的方法,其中的數(shù)據(jù)流包括多個兩個集的代碼字,該方法還包括以下步驟通過重復(fù)步驟b1)、b2)和b3)來提取第三集的代碼字,其中第二預(yù)定規(guī)則等同于步驟b3)的第二預(yù)定規(guī)則,并且其中的分配規(guī)則等同于步驟1)的分配規(guī)則。
17.如在權(quán)利要求15或16中所要求的方法,其中在形成數(shù)據(jù)流時所使用的分配規(guī)則把第二集的第一個代碼字分配給在其中第一集的第一個代碼字開始的一個節(jié),其中,在步驟b1),解碼器跳至第一個柵格點(41)以獲取第二集的第一個代碼字,解碼器跳至第二個柵格點(42)以獲取第二集的第二個代碼字,以此類推,其中,如果沒有或者只有第二集的一個代碼字的一部分在第一柵格點(41)開始,在根據(jù)第二預(yù)定規(guī)則確定一個丟失了的代碼字或者一個代碼字的一個丟失了的部分之前,解碼器一開始從所有的柵格點開始讀取。
18.如由權(quán)利要求15至17中的一個權(quán)利要求所要求的方法,其中步驟a3)中的第一個預(yù)定規(guī)則如下對于一個讀取的代碼字的每個存儲段,跳至在步驟a1)之后余留的數(shù)據(jù)流中的下一個柵格點,以確定該代碼字的余下部分;如果一個代碼字能被讀至終點,把已被讀至終點的該代碼字與所儲存的段連接起來,以完整地獲得第一集的代碼字,否則,則儲存已被讀取的一個段并重復(fù)跳至下一個柵格點的步驟,直至第一集所有的代碼字出現(xiàn)。
19.如由前面的任何一個權(quán)利要求所要求的方法,其中在第一個代碼字集中存在的代碼字與在該數(shù)據(jù)流中存在的節(jié)一樣多,而且其中在其他的一個集或多個集中的代碼字的數(shù)量等于或小于第一集中的代碼字的數(shù)量,以使第一集中所有的代碼字均被寫至柵格點。
20.用于生成可變長度代碼字的數(shù)據(jù)流的設(shè)備(10),該數(shù)據(jù)流被分成多個代碼字集,其中存在一個具有用于該數(shù)據(jù)流的多個柵格點的柵格,其中兩個相鄰的柵格點(41,42)定義一個節(jié)(40),該柵格包括多個節(jié),該設(shè)備包括a)用于寫入第一集的代碼字(1-6)以使各代碼字的起點在各不同節(jié)的柵格點的設(shè)備(16),其中,設(shè)備16是這樣設(shè)置的,使得如果一個代碼字長于一個節(jié),則依照第一個預(yù)定規(guī)則把該代碼字的余下部分寫入該柵格的在步驟a1)之后未在上面寫信息的一個區(qū),直至第一集的所有代碼字均被寫入該柵格為止。b)用于把第二集的每個代碼字寫入按照一個預(yù)定的分配規(guī)則被分配每個單個代碼字的一個節(jié)中的裝置(18),其中如果相應(yīng)的代碼字適合于該節(jié)的話,第二集的每個代碼字被分配給一個不同的節(jié),其中裝置(18)是這樣配置的如果相應(yīng)的代碼字只有一部分適合于所分配的節(jié),或者如果所分配的節(jié)是滿的,則把第二集的該相應(yīng)的代碼字(7)的該部分(7a)寫入所分配的節(jié)(1)并將該代碼字的余下部分(7b)或者把分配給該滿節(jié)的整個代碼字(13)儲存起來;把在步驟b1)、b2)中不適合于相應(yīng)的節(jié)的所存的余下部分(7b)和所存的整個代碼字(13)按照第二預(yù)定規(guī)則寫入該柵格的在步驟b1)和b2)之后未在上面寫信息的一個區(qū),直至第二集的所有代碼字均被寫入該柵格為止。
21.用于讀取一個可變長度代碼字數(shù)據(jù)流的設(shè)備(22),其中該數(shù)據(jù)流包括多個代碼字集的代碼字,其中為該數(shù)據(jù)流(38)指定一個包括柵格點(41,42)的柵格,其中兩個相鄰的柵格點(41,42)定義一個節(jié)(40),其中該數(shù)據(jù)流至少包括兩個節(jié),該設(shè)備包括a)用于從數(shù)據(jù)流(38)提取第一集的代碼字的一個裝置(28),該裝置被如此配置使之對于每個節(jié),跳至一個柵格點并在那里開始讀取一個代碼字;如果在一個柵格點開始的該代碼字未能在該節(jié)的終點結(jié)束,把該代碼字的所讀取的段儲存起來;根據(jù)在形成該數(shù)據(jù)流時使用的第一預(yù)定規(guī)則確定該代碼字的余下部分;和b)用于從在步驟a)之后余下的數(shù)據(jù)流(50)中提取第二代碼字集的代碼字的一個裝置(30),該裝置被如此配置使之對于每個余下的節(jié),根據(jù)在形成該數(shù)據(jù)流時使用的一個預(yù)定的分配規(guī)則跳至該節(jié)的一個柵格點,并讀取在那里開始的代碼字,以便獲得第二節(jié)的代碼字,如果第二集的一個代碼字未能在一個相應(yīng)的節(jié)的終點結(jié)束,則把第二集的該代碼字的所讀取的段儲存起來;根據(jù)在形成該數(shù)據(jù)流時使用的第二預(yù)定規(guī)則確定該代碼字的余下部分或未在一個柵格點出現(xiàn)的該代碼字。
全文摘要
本發(fā)明涉及從被分成多個代碼字集的可變長度代碼字生成數(shù)據(jù)流的方法,其中為該數(shù)據(jù)流確定一個包含多個節(jié)的柵格,其中兩個相鄰的柵格點(41,42)定義一個節(jié)(40)。第一集的代碼字(1-6)從這些柵格點開始被寫入該數(shù)據(jù)流。接著,第二集的代碼字依照一個預(yù)定的分配規(guī)則被寫入該數(shù)據(jù)流,其中第二集的每個代碼字被分配到一個不同的節(jié)。不能根據(jù)其分配被寫入的完整的代碼字或代碼字的部分被儲存起來并在后面的寫入嘗試中被送入該數(shù)據(jù)流,其中對按照預(yù)定規(guī)則進行的分配,每一次嘗試都是變化的。對于任何接下來會出現(xiàn)的集,該過程被類似地重復(fù)進行。這樣,第二集的代碼字的終點就與后接的第二集的代碼字的起點分開,因為一個集的相應(yīng)的代碼字是逐節(jié)寫入的。這就減小了差錯擴散。
文檔編號H03M7/42GK1345484SQ00805534
公開日2002年4月17日 申請日期2000年1月17日 優(yōu)先權(quán)日1999年2月23日
發(fā)明者拉爾夫·斯伯奇內(nèi)德, 馬丁·迪爾茲, 皮埃爾·勞伯, 米歇爾·舒格 申請人:弗蘭霍菲爾運輸應(yīng)用研究公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
吕梁市| 石狮市| 县级市| 九江县| 遂溪县| 平乐县| 翼城县| 晋城| 二连浩特市| 泗洪县| 五原县| 班玛县| 博爱县| 镇沅| 和平县| 上思县| 乌海市| 金寨县| 和龙市| 勃利县| 沁水县| 扶余县| 体育| 鞍山市| 太湖县| 闽清县| 遂昌县| 拜泉县| 佳木斯市| 铅山县| 林甸县| 泸西县| 汕尾市| 玛纳斯县| 永春县| 合作市| 安吉县| 石楼县| 公安县| 海晏县| 武宁县|