專利名稱::數(shù)據(jù)并行編碼和譯碼的方法和裝置的制作方法
技術領域:
:本發(fā)明是關于數(shù)據(jù)壓縮(Compression)和去壓縮(decompression)系統(tǒng)
技術領域:
,特別是關于在壓縮/去壓縮系統(tǒng)中的數(shù)據(jù)的并行編碼和譯碼方法和裝置。本申請是名為"數(shù)據(jù)的并行譯碼和編碼的方法和裝置"的美國專利申請(No08/016035,F(xiàn)eb.10,1993)的延續(xù)部分。今天,廣泛采用數(shù)據(jù)壓縮技術,特別是在存貯和傳送大量的數(shù)據(jù)場合?,F(xiàn)有技術中有許多不同的壓縮技術。這些壓縮技術可被分成兩大類有損編碼和無損編碼。有損編碼是指那些會導致信息丟失的編碼,因而不能保證完全地再現(xiàn)原始數(shù)據(jù)。而無損壓縮中,所有信息均被保留著,對數(shù)據(jù)的壓縮過程是使得數(shù)據(jù)能完全復元的。在無損壓縮中,輸入信號碼元被變換成輸出代碼字。如果壓縮是成功的,表示這些代碼字的信息位(畢特)數(shù)量就會小于輸入碼元的數(shù)量。無損編碼方法包括詞典編碼法(例如,Lempel-Ziv),行程掃描寬度持續(xù)長度編碼法,枚舉編碼法和熵編碼法。熵編碼是指任一設法利用已知的或估算的碼元概率將數(shù)據(jù)壓縮到接近熵(平均信息量)的極限的無損編碼法。熵編碼包括霍夫曼編碼,算術編碼和二元熵編碼。二元編碼器是僅針對二元(是/非)判定工作的無損編碼器,此二元判定經常表示為最大或然碼元(MPS)和最小或然碼元(LPS)。作為二元熵編碼器例子的有IBM的Q編碼器和一種稱之為B編碼器的編碼器。關于B編碼器的詳細情況可參看美國專利No5272478J.D.Allen的"熵編碼的方法和裝置"(Dec.21,1993)轉讓于本發(fā)明的共同受讓人。也可參看M.J-.Gormish&J.D.Allen"有限狀態(tài)機的二元熵編碼"(Proc.DataCompressionConference中的摘要(March30,1993,Snowbird,UT,P.449)。B編碼機是一種用有限狀態(tài)機壓縮的二元熵編碼器。圖1所示為一現(xiàn)有技術采用二元熵編碼器的壓縮和去壓縮系統(tǒng)的方法圖。進行編碼時,數(shù)據(jù)輸入進(前后關系)結構模型(CM)101。CM101將輸入數(shù)據(jù)變換成一組(或序列)二元判定并給每一判定提供結構槽(Conetextbin)。此判定序列及它們的相關結構槽一同由CM101輸出到概率估算組件(PEM)102。PEM102接收每一結構槽并對每一二元判定產生一概率估算。實際的概率估算通常均以一稱之為P類別的類別(class)來表示。每一P類別用于一個概率范圍。PEM102還確定二元判定(結果)是否是處于它的較大可能的狀態(tài)(即是否該判定對應于MPS)。位流發(fā)生器(BG)組件103接收此概率估算(即P類別)及關于此二元判定是否可能是輸入的確定。據(jù)此,BG組件103產生壓縮數(shù)據(jù)流,輸出零或多個畢特位以代表原始數(shù)據(jù)。譯碼時,CM104提供結構槽到PEM105,而PEM105即根據(jù)此結構槽給出概率類別(P類別)到BG組件106。BG106被連接來接收概率類別。根據(jù)此概率類別及壓縮數(shù)據(jù),BG組件106回復一表明該二元判定(即事件)是否處于它的最大或然狀態(tài)的畢特位。PEM105接收此畢特位,根據(jù)此接收到的畢特位更新概率估算,并將結果送回CM104。CM104接收此回復畢特位并用它來產生原始數(shù)據(jù)并為下一二元判定更新結構槽。采用諸如IBM的Q編碼器和B編碼器等的二元熵編碼器的一個問題是它們很緩慢,即使用硬件實現(xiàn)也如此。它們的運行需要一個單獨的很慢的大反饋電路。為重述譯碼過程,結構模型利用過去被譯碼的數(shù)據(jù)來產生一結構。概率估算組件利用此結構產生一概率類別。位流產生器利用概率類別及壓縮數(shù)據(jù)以確定下一畢特位可能是或者不可能是結果。概率估算組件利用此可能/不可能的結果產生一結果位(以及針對該結構更新概率估算)。此結果位被結構模型用來更新它的已往數(shù)據(jù)的過程。為對一單個的畢特位進行譯碼均需要全部這些步驟。因為結構模型在能提供下一結構前必須等待該結果位來更新它的歷史過程,所以對下一畢特位的譯碼就必須等待。這就希望能避免在對下一畢特位譯碼前必須完成反饋電路的操作。換句話說,希望能一次對多于一畢特位或代碼字進行譯碼以便增加對壓縮數(shù)據(jù)譯碼的速度。利用二元熵編碼的譯碼器的另一個問題是必須處理可變長數(shù)據(jù)。在大多數(shù)系統(tǒng)中,欲加以譯碼的代碼字均具有可變長度。另外其他一些系統(tǒng)則對可變長度的碼元(未編碼數(shù)據(jù))進行編碼。在處理可變長數(shù)據(jù)時,需要以位為單元移動數(shù)據(jù)以便能提供譯碼或編碼運行中正確的下一數(shù)據(jù)。這些以位為單位對數(shù)據(jù)流的處理可能需要昂貴的和/或緩慢的硬件和軟件。而且,現(xiàn)有技術的系統(tǒng)要求在時間要求苛刻的反饋電路中完成這種移位,這就限制了譯碼器的性能。如能對于編碼和譯碼操作中僅有一個昂貴和/或速度受限的情況允許這一對數(shù)據(jù)流作位為單位的處理或者在編碼器中進行或者在譯碼器中進行將是很有利的。同樣也有利的是去除時間受限的反饋環(huán)路中的這種以位為單位對數(shù)據(jù)流的處理過程,從而能采采并行操作來提高速度。本發(fā)明提出一種無損壓縮和去壓縮系統(tǒng)。本發(fā)明提出一種能快速譯碼的簡單的譯碼器。本發(fā)明還提供以并行和流水線方式對數(shù)據(jù)進行譯碼的譯碼系統(tǒng)。本發(fā)明提出的對二元熵編碼數(shù)據(jù)流進行的譯碼操作,無需執(zhí)行現(xiàn)有技術中的在苛刻的反饋電路中的以位為單元的處理。本發(fā)明還提出多個編碼器(無損或有損)數(shù)據(jù)的交錯應用而無需采用過多的標志。本發(fā)明提出的數(shù)據(jù)去壓縮和壓縮的方法和裝置中,包括一種對具有多個代碼字的數(shù)據(jù)流以流水線方式進行譯碼的方法和裝置。本發(fā)明包括有將數(shù)據(jù)流的部分分派到多個譯碼設備的方法和裝置。這些譯碼設備對數(shù)據(jù)譯碼,其中至少一個譯碼設備對其對應的數(shù)據(jù)流部分在連續(xù)的循環(huán)周期內以流水線方式進行譯碼。在另一實施例中,對數(shù)據(jù)流的譯碼從確定當前的結構槽開始。當前的結構槽的譯碼器狀態(tài)由存貯器提取得。由此就可能確定概率估算機(PEM)的狀態(tài)。然后對代碼字進行處理并譯碼。在本發(fā)明中,結構的確定、PEM狀態(tài)的確定和代碼字的處理是在流水線方式的連續(xù)周期內進行的。本發(fā)明還提出一種利用可變長數(shù)據(jù)的并行譯碼和編碼的方法和裝置。欲譯碼的數(shù)據(jù)可以是從有損或無損編碼器接收的。同樣,接收的數(shù)據(jù)是經過編碼的或未經過編碼的。由以下的詳細說明和發(fā)明實施例附圖將會更全面理解本發(fā)明,但這些實施例僅用于說明和了解,而不是對本發(fā)明的限制。所列附圖分別為圖1為現(xiàn)有技術中二元熵編碼器和譯碼器的方框圖;圖2A為本發(fā)明的譯碼系統(tǒng)的方框圖;圖2B為本發(fā)明編碼系統(tǒng)一實施例的方框圖;圖2C為并列處理結構槽的本發(fā)明譯碼系統(tǒng)一實施例的方框圖;圖2D為并列處理概率類別的本發(fā)明譯碼系統(tǒng)一實施例的方框圖;圖3說明本發(fā)明的無交錯編碼流;圖4說明由一典型數(shù)據(jù)組推導得的交錯編碼流的一實施例;圖5為本發(fā)明的R編碼器中的概率估算表和位流發(fā)生器的一個示例;圖6為本發(fā)明的譯碼系統(tǒng)一實施例的方框圖;圖7為本發(fā)明的譯碼器一實施例的方框圖;圖8說明本發(fā)明的譯碼流水線的一實施例;圖9說明本發(fā)明所采用的結構模型的模板的一舉例;圖10為本發(fā)明的位發(fā)生電路一實施例的方框圖;圖11說明本發(fā)明中對PEM狀態(tài)譯碼用的邏輯;圖12為用于確定是否需要一新代碼字的邏輯的一實施例的方框圖;圖13為本發(fā)明的譯碼邏輯一實施例的方框圖;圖14為更新運行計數(shù)的邏輯的一實施例的方框圖;圖15為本發(fā)明的將編碼數(shù)據(jù)移進譯碼器的一實施例的方框圖;圖16A說明本發(fā)明的譯碼系統(tǒng)的實現(xiàn)方案;圖16B說明本發(fā)明的譯碼系統(tǒng)的另一實現(xiàn)方案;圖17為說明本發(fā)明的流水線式譯碼的時序圖;圖18為作隱含信號控制的有限存貯器編碼器的一實施例的方框圖;圖19為具有作隱含信號控制的有限存貯器的譯碼器的一實施例方框圖;圖20為本發(fā)明一編碼器的實施例方框圖;圖21為本發(fā)明一譯碼器的實施例方框圖;圖22為二分化的判定樹;圖23為本發(fā)明的聲/視頻信號交錯系統(tǒng)的方框圖;圖24為應用本發(fā)明的高頻寬系統(tǒng)的方框圖;圖25為應用本發(fā)明的帶寬匹配系統(tǒng)的方框圖;和圖26為應用本發(fā)明的一實時視頻系統(tǒng)的方框圖。在下面對一數(shù)據(jù)并行編碼和譯碼的方法和裝置的介紹中,對許多方面作了特定的細節(jié)描述,例如特定的畢特位數(shù),譯碼器數(shù),特定的概率,數(shù)據(jù)類型等,以便能對本發(fā)明的優(yōu)選實施例作透徹的理解。對本
技術領域:
的熟悉人員來說將會明白無須這些特定的細節(jié)也可實現(xiàn)本發(fā)明。而且對相當公知的電路均是以方框圖而不是它們的細節(jié)表示的,以避免對本發(fā)明發(fā)生不必要的誤解本發(fā)明提出一種對被編碼數(shù)據(jù)作并行無損譯碼的系統(tǒng)。數(shù)據(jù)并行譯碼是采用多重譯碼設備。此多重譯碼設備的每一個均被分配給欲譯碼的數(shù)據(jù)流的一部分。數(shù)據(jù)流的分派是動態(tài)地進行的,其時各譯碼設備同時進行數(shù)據(jù)譯碼,從而實現(xiàn)對數(shù)據(jù)流的并行譯碼。為使得數(shù)據(jù)分配能有效地利用這些譯碼設備,將數(shù)據(jù)流進行了排序。這被稱之為數(shù)據(jù)流并行化。數(shù)據(jù)使得排序每一譯碼設備可對任何或者全部編碼數(shù)據(jù)進行譯碼而無需要等待由結構模型的反饋。圖2A說明本發(fā)明的譯碼系統(tǒng),不具有現(xiàn)有技術的緩慢的反饋電路。輸入緩存204接收編碼數(shù)據(jù)(即代碼字)和來自譯碼器205的反饋信號,并將編碼數(shù)據(jù)以預定的順序(例如結構槽順序)送至本發(fā)明的對編碼數(shù)據(jù)譯碼的譯碼器205。譯碼器205包含多重譯碼器(例如,205A,205B,205C等)。在一實施例中,每一譯碼器205A-205C被施加以針對一組結構的數(shù)據(jù)。譯碼器205中的每一譯碼器由輸入緩存204針對其結構組中的每一結構槽供給編碼的數(shù)據(jù)。利用這種數(shù)據(jù),各譯碼器205A、205B、205C等產生針對其結構槽組的譯碼數(shù)據(jù)。為將被編碼數(shù)據(jù)與一特定結構槽組相關連并不需要該結構模型。經譯碼的數(shù)據(jù)由該譯碼器205送至譯碼數(shù)據(jù)存貯器207(例如,207A,207B,207C等)。應指出的是譯碼數(shù)據(jù)存貯器207有可能存放既非經編碼的又非未經編碼的中間數(shù)據(jù),例如運行計數(shù)。在這種情況下,譯碼數(shù)據(jù)存貯器207以緊致的,但不是熵編碼的方式存放數(shù)據(jù)。結構模型206獨立地運行,根據(jù)它送往譯碼數(shù)據(jù)存貯器207的反饋信號由譯碼數(shù)據(jù)存貯器207(即207A,207B,207C等)接收先前被譯碼的數(shù)據(jù)。因此,存在有兩個獨立的反饋電路,一個處于譯碼器205和輸入緩存204之間,第二個處于結構模型206和譯碼數(shù)據(jù)存貯器207之間。由于省略了大的反饋電路,譯碼器205中的譯碼器(如205A,205B,205C)一旦在由輸入緩存204接收到與它們相關的代碼字之后就可立即對之進行譯碼。結構模型設置編碼系統(tǒng)的存貯器部分并根據(jù)此存貯器將一組數(shù)據(jù)(例如,一幅圖象)劃分不同的種類(例如,結構槽)。在本發(fā)明中,結構槽被看作是一些獨立的排序的數(shù)據(jù)組。在一實施例中,各組結構槽具有它們自己概率模型,而每一結構槽具有它們自己的狀態(tài)(這里概率估算模型被共享)。因此,每一結構槽就有可能采用不同的概率估算模型和/或位流發(fā)生器。這樣,數(shù)據(jù)就被加以排序,或并行化,并將數(shù)據(jù)流的各部分分配給各個編碼器予以譯碼。為了使數(shù)據(jù)流并行化,可將數(shù)據(jù)按照(上下關系)結構、概率或者磚瓦結構來劃分。本發(fā)明編碼系統(tǒng)由經結構模型(CM)區(qū)分開的數(shù)據(jù)輸入的并行編碼部分如圖2B中所示。參看圖2B,此與結構相關的并行編碼器部分包含有結構模型(CM)214,概率估算組件(PEM)215-217,和位流發(fā)生器(BG)218-220。CM214被用來接收編碼輸入數(shù)據(jù)。CM214還被連接到PEM215-217。PEM215-217。PEM215-217還分別連接到BG218-220,后者分別輸出編碼流1、2和3。每一對PEM和BG組成一編碼器。因此,此并行編碼器表現(xiàn)為三個編碼器。雖然這里僅表示出三個并列碼,但任何數(shù)量的編碼器都可以采用。CM214以與通常的CM同樣的方式將數(shù)據(jù)流劃分為不同的結構,并將此多個數(shù)據(jù)流送至并行硬件編碼設備。各個別的結構,或結構組件針對各自分開的概率估算器(PEM)215-217及位發(fā)生器(BG)218-219。每一BG218-220輸出編碼數(shù)據(jù)流。圖2C為本發(fā)明的譯碼系統(tǒng)的譯碼器部分一實施例的方框圖。參看圖2C,一與結構相關的并行譯碼器表示為具有BG221-223,PEM224-226和CM227。編碼流1-3被分別連通到BG221-223。BG221-223也分別連通到PEM224-226。PEM224-226連接到輸出再生的輸入數(shù)據(jù)的CM227。輸入來自表示為編碼流1-3的數(shù)個編碼流。一個編碼流被分配給各個PEM和BG。每一BG221-223送回一表明二元判定是否處于其較大或然狀態(tài)的畢特位,PEM224-226用它來返回譯碼畢特位(如二元判定)。每一PEM224-226與BG221-223之一相關連,指明由輸入編碼流中該應用哪一編碼來產生數(shù)據(jù)流。CM227以適當?shù)捻樞蛴晌涣靼l(fā)生器選擇被譯碼的特位來產生經譯碼的數(shù)據(jù)流,由此再生原始數(shù)據(jù)。這樣,CM227就由適當?shù)腜EM和BG取得去壓縮的數(shù)據(jù)位,實際上將數(shù)據(jù)重新排序成原始的順序。應該注意的是,對于這種設計的控制流向是與數(shù)據(jù)流的方向相反的。BG和PEM有可能在CM227需要以前就對數(shù)據(jù)譯碼,而在其前面留有一個或多個畢特位。換句話說,CM227可能要求來自一個BG和PEM(但未接收)的一個畢特位,然后在利用此先前要求的畢特位之前又要求來自的一個或更多的畢特位。圖2C中所示的結構是設計得使PEM與BG緊密地耦合。IBMQ編碼器是具有緊密耦合的PEM與BG的編碼器的典型例子。它們之間的局部反饋電路并不成為系統(tǒng)性能的根本制約。在一不同設計中,所連接的PEM區(qū)分數(shù)據(jù)并將其送到并行BG單元。這樣,就將僅有一個CM和PEM,而BG則被重復。在這種情況下可以利用自適應霍夫曼編碼及有限狀態(tài)機編碼。在圖2D中列出了采用PEM來區(qū)分數(shù)據(jù)并將其送至并行BG的類似的譯碼系統(tǒng)。在這種情況中,概率類別作并行處理,每一位流發(fā)生器被指派給一特定的概率類別并接收結果信號。參看圖2D,編碼數(shù)據(jù)流1-3被連通到用來接收它們的多路位流發(fā)生器(例如BG232,BG233,BG234等)。每一位流發(fā)生器均連接到PEM235。PEM235也連接到CM236。在此結構中,每一位流發(fā)生器對編碼數(shù)據(jù)進行譯碼,其譯碼結果由PEM235(而不是由CM236)加以選擇。每一位流發(fā)生器從與一概率類別相關的設備接收編碼數(shù)據(jù)(亦即,此時編碼數(shù)據(jù)可能來自任一結構槽)。PEM235利用概率類別選擇位流發(fā)生器。概率類別由為CM236所提供給它的結構槽來指明。在這種情況下,譯碼數(shù)據(jù)由并行處理概率類別來產生。本發(fā)明的并行譯碼系統(tǒng)有多種實現(xiàn)方案。在一實施例中,對應于多重結構槽的編碼數(shù)據(jù)流可按各不同編碼器的要求被交錯排列進一個數(shù)據(jù)流。在本發(fā)明的當前優(yōu)選實施例中,編碼數(shù)被排列得即使編碼數(shù)據(jù)是在一個數(shù)據(jù)流中傳送給譯碼器時每一編碼器均能不斷地有數(shù)據(jù)供給。應指出,本發(fā)明可對所有類型數(shù)據(jù)操作,包括圖象數(shù)據(jù)在內。依靠利用那些能在集成電路中廉價地重復實現(xiàn)的小型簡單的譯碼器,編碼數(shù)據(jù)可被并行地快速譯碼。在一實施例中,譯碼器采用現(xiàn)場可編程門陣列(FPGA)芯片或標準單元的專用集成電路(ASlC)芯片硬件實現(xiàn)。并列化與簡單的位流發(fā)生器的組合使得對編碼數(shù)據(jù)的譯碼過程能以超過現(xiàn)有技術譯碼器的速度進行,但同時保持現(xiàn)有技術譯碼系統(tǒng)的壓縮效率。存在許多影響系統(tǒng)性能的各種不同的設計上的爭論和問題。下面將談到它們中的幾個。不過圖2B和2C(及2D)中所示的設計應用多路編碼流。具有能協(xié)同這一設計的并行信道的系統(tǒng)可以想象為多路電話線,多個磁盤驅動器上的磁頭等等。在一些應用中,僅僅只可能(或方便)采用一個信道。實際上,如果要求用多重信道時可能惡化帶寬的應用,因為個別編碼流具有猝發(fā)特性。在一實施例中,編碼流被加以銜接起來,連續(xù)地送往譯碼器。一前導標題包含有指向每一數(shù)據(jù)流的起始位存放單元的指針。圖3說明這種數(shù)據(jù)安排的一實施例。參看圖3,三個指針301-303分別指出的編碼流1、2和3的連接編碼中的起始位置。一完整的壓縮數(shù)據(jù)文件可由譯碼器的緩存中得到。在需要時,通過適當?shù)闹羔榿碛蛇m當?shù)奈恢脵z索代碼字。該指針然后就被更新到該編碼流中的下一代碼字。應指出,這一方法要求整個被編碼的幀存貯在譯碼器,以及為了實際目的,存貯在編碼器處。如果需要的是一個實時系統(tǒng),亦即較少猝發(fā)數(shù)據(jù)流,可用兩個幀緩存作為編碼器和譯碼器的存儲體。要注意的是,一譯碼器是以一定的確定順序對代碼字進行譯碼的。采用并行編碼,對編碼流有確定的順序要求。這樣,如果能將并行編碼流中的代碼字在編碼器處交錯排列成正確的順序的話,一單個的編碼流就足夠了。代碼字以同樣的順序正合拍地傳送至譯碼器。在編碼器方面,一譯碼器的模型決定代碼字順序并將代碼字組合成一單個的數(shù)據(jù)流。這一模型也可以是一實際的譯碼器。在數(shù)據(jù)為可變長時,將數(shù)據(jù)位傳送并行譯碼部件存在有一個問題。在分解一可變長代碼數(shù)據(jù)流時需要采用位移位器來調整這些代碼字。以硬件實現(xiàn)的位移位器經常是很昂貴而且/或者很緩慢的。對畢特移位操作器的控制決定于特定代碼字的大小。這一控制反饋電路使得不可能快速執(zhí)行可變長度位移操作。如果以一速度不足以與多個譯碼器相適應的單個位移位器來作分解數(shù)據(jù)流的操作,就無法發(fā)揮以單一數(shù)據(jù)流來供給多個譯碼器的優(yōu)點。本發(fā)明提出的解決辦法是,將編碼數(shù)據(jù)分配給并行編碼器的問題與譯碼中調整可變長代碼字分開對待。每一獨立的代碼流中的代碼字被組裝成為固定長度的字,稱之為交錯排列字。在信道的譯碼器端,這些交錯處理字可利用快速電路連接數(shù)據(jù)線及一簡單的控制電路來分配到并行譯碼器單元。通常是使交錯排列字的長度大于最大的代碼字長,以使將在每一交錯處理字中至少含有足以完成一代碼定的畢特位。這些交錯排列字可以包含有可能的代碼字和代碼字的部分。圖4說明一組示例并行編碼流的交錯排列過程。按照譯碼器處的要求進行這些字的交錯排列。每一獨立的譯碼器接收完整的交錯排列字。畢特移位操作就地在每一譯碼器中進行,維持關系的并行性。應看到在圖4中每一交錯排列字的第一代碼字是該組中保持為最低的一代碼字。例如第一交錯排列字來自編碼流1,以最低代碼字(即#1)起頭。此后跟著的是編碼流2中的第一交錯排列字,再后面是編碼流3中的第一交錯排列字。不過,下一最低編碼字是No7。因此在該數(shù)據(jù)流中的下一個字是編碼流2的第二交錯排列字。采用實際的譯碼器來作數(shù)據(jù)流模型考慮了所有設計選擇和延遲以生成交錯處理數(shù)據(jù)流。這對于具有譯碼器和編碼器兩者的雙向系統(tǒng)來說,無論如何不是很大的代價。應指出,這可以通用于任何具有確定順序的可變長(即不同大小)數(shù)據(jù)字的一并行組。本發(fā)明可以應用現(xiàn)有的譯碼器,例如Q譯碼器或B譯碼器,作為并行多重使用的位流發(fā)生部件。不過也可以采用其他編碼和編碼器。本發(fā)明采用的編碼器連同它的相關的編碼屬于簡單編碼器。在本發(fā)明中,利用具有簡單編碼而不是復雜編碼(例如Q編碼器所用的算術編碼或者B編碼器所用的多狀態(tài)編碼)的位流發(fā)生器可獲得很多優(yōu)點。簡單編碼的好處在于硬件實現(xiàn)快得多而且簡化許多,比復雜編碼要求較小的集成電路構成。本發(fā)明的另一優(yōu)點可以改善編碼效率。采用有限量狀態(tài)信息的編碼不能完全滿足每一概率的香農(Shannon)熵邊界。容許以一單個位流發(fā)生器來處理多概率或結構的編碼要求降低編碼效率的約束。去除這些多結構或概率類別所必須的約束就有可能采用那些接近滿足香農熵邊界的編碼。本發(fā)明現(xiàn)在這一優(yōu)選實施例所采用的編碼(及編碼器)被稱之為R編碼。R編碼為一包括行程長度代碼(即R2(k)代碼)在內的自適應代碼。在本優(yōu)選實施例中,R編碼經過參數(shù)化以便使許多不同的概率能為單一的譯碼器設計加以處理。而且,本發(fā)明的R編碼還能由簡單的高速硬件進行譯碼。在本發(fā)明中,R編碼器利用R編碼來執(zhí)行編碼或譯碼操作。在此優(yōu)選實施例中,一R編碼器是由位流發(fā)生器和概率估算單元結合而成的組件。例如,以圖1中,R編碼器可能包含有概率估算組件102和位流發(fā)生器103的組合,及概率估算組件105與位流發(fā)生器106的組合。代碼字表示最大或然碼元(MPS)的運行。一MPS代表具有大于50%的概率的二元判定的結果。另一方面,最小或然碼元(LPS)則代表具有低于50%概率的二元判定的結果。應指出的是,當兩個結果具有相同的可能時,只要編碼器和譯碼器作相同的選擇,選定為MPS或LPS中哪一個就無關緊要。對于一給定的稱為MAXRUN的參數(shù),被壓縮文件中的位序列被示于表1中。表1位發(fā)生器編碼為編碼,由一簡單計數(shù)器對一運行中的MPS數(shù)加以計數(shù)。如果計數(shù)等于MAXRUN計數(shù)值,就將0代碼字送進編碼流中而將計數(shù)器復位。如果碰到一LPS,則將后面跟隨N畢特位的1送進編碼數(shù)據(jù),此N特指LPS前的MPS碼元數(shù)。(應指出,有許多方法指定N畢特位以描述行程長度)。再次將計數(shù)器復位。應看到N所需要的畢特位數(shù)取決于MAXRUN的值。還可看到可以采用代碼字的1的補數(shù)。為譯碼,如果編碼流中的第一畢特位為0,則將MAXRUN的值放進MPS計數(shù)器,并將LPS讀數(shù)清零。然后消除0畢特位。如果第一畢特位是1,則檢驗下面畢特位提取N畢特位,并將適當?shù)挠嫈?shù)(N)放進MPS計數(shù)器和設置LPS指示。然后消除包含1N代碼字的編碼流畢特位。R編碼按表1中的規(guī)則產生。要指出的是其中所給定的R編碼Rx(k)的定義由MAXRUN規(guī)定。例如MAXRUNRx(k)=X*2k-1,這樣MAXRUNR2(k)=2*2k-1,MAXRNUR3(k)=3*2k-1,等等。應指出的是R編碼是Golomb編碼的擴展。Golomb編碼僅利用R2()編碼。本發(fā)明的R編碼允許采用R2(k)和R3(k)兩個編碼,以及如希望的話還包括其他的Rn(k)編碼。在一實施例中采用R2(k)和R3(k)編碼。Rn中的n=2以及n等于任何奇數(shù)(如,R2,R3,R5,R7,R9,R11,R13,R15)。在一實施例中的R2(k)編碼,其行程計數(shù)r被以N編碼;此行程計數(shù)r被以K畢特位說明,因此1N就以K+1畢特來代表。而在一實施例中的R3(k)編碼,畢特位N可能包含有一畢特位指明n<2(k-1)還是n≥2(k-1),以及是k-1或k畢特指明行程計數(shù)r,這樣就使得變量N分別以總數(shù)k或K+1畢特來表示。在另一實施例中,在代碼字中可以應用N的1的補數(shù)。在這種情況下,MPS就趨向于具有產生許多0產生的編碼流,向LPS則趨向于產生具有許多1的編碼流。表2、3和4和5說明用于本發(fā)明的當前實施例的一些有效的R編碼。應當指出,本發(fā)明中也可以采用其他行程編碼。一替換的行程編碼的R2(2)的示例如表6中的所示。表7和8說明本優(yōu)選實施例中所用的編碼示例。表2R2(0)表3R2(1)表4R3(1)表5R2(2)表6替換的R2(2表7優(yōu)選的R3(2)編碼表8優(yōu)選的R2(2)編碼</tables>在這一優(yōu)選實施例中,R2(0)碼不進行編碼輸入0被編碼為0,輸入1被編碼為1,(或者相反),理想的是概率等于50%。在本優(yōu)選實施例中不利用R3(0)碼。本優(yōu)選實施例中的R2(1)編碼理想的概率等于0.707(即70.7%),而R3(1)理想的概率0.794(即79.4%)。R2(2)編碼理想的概率是0.841(84.1%)。下述表7說明接近理想的行程碼,其中概率偏差由下式確定概率偏差=-log2(LPS)。表7應指出的是該編碼在下列情況中是接近理想的如由概率偏差所指出的,此概率范圍是相對均勻地覆蓋空間,即使該理想概率在較高K值中并不如在較低K值那樣區(qū)別開。一固定K的R2(K)稱之為行程碼。不過,一固定的K對一固定概率僅僅是接近理想的。應看到當在一理想概率編碼時,按照本發(fā)明的R碼采用等頻率的0和1N代碼字。換句話說,一半時間本發(fā)明的R編碼器輸出一編碼,而在另一半時間此R譯碼器輸出另一編碼。檢驗0和1N代碼字的數(shù)量可以確定是否應用了最佳編碼。這就是說,如果輸出太多的1N代碼字時,則行程就太長;另一方面,在輸出太多的0代碼字時,則行程就太短。Langdon所采用的概率估算模型檢驗每一代碼字的第一畢特位以確定源概率是高于還是低于當前的估算。根據(jù)這一判斷,增加或減少K。例如,如果發(fā)現(xiàn)指明為MPS的代碼字,此概率估算就是太低。因此,按照Langon,對每一0代碼字將K加一。如果碰到一指明低于后跟有LPS的MAXRUNMPS的代碼字,則概率估算就太高。因而,按照Langdon,就對每一1N代碼字將K增加1。本發(fā)明使得可采用比簡單地對每一代碼字的K加1或減1更復雜的概率估算。本發(fā)明包括一確定要用的編碼的概率估算組件狀態(tài)。許多狀態(tài)可利用同一編碼。利用狀態(tài)表或狀態(tài)機將編碼分派給各狀態(tài)。在本發(fā)明中,概率估算改變每一代碼字輸出的狀態(tài)。這樣,在本發(fā)明中,概率估算組件根據(jù)代碼字是以0還是1開始來增大或減小概率估算。例如說,如果輸出-"0"代碼字,就增加MPS概率的估算。另一方面,如果輸出-"1"代碼字,就減小MPS概率的估算?,F(xiàn)有技術的Langdon編碼器僅只利用R2(K)碼并增加或減小每一代碼字的K。而本發(fā)明則協(xié)同狀態(tài)表和狀態(tài)機利用R2(K)和R3(k)編碼以使得能使用自適應速率。就是說,如果靜態(tài)數(shù)據(jù)量小時自適應就必須較快來產生較理想的編碼效果,而在靜態(tài)數(shù)據(jù)量較大時,自適應時間就可以較長以便能選擇編碼來達到對其余數(shù)據(jù)部分的較佳的壓縮。應當指出,當出現(xiàn)狀態(tài)變化的可變數(shù)量時,特定的應用特點也可能影響自適應速率。由于R碼的性質,對R碼的估算很簡單,需要的硬件很少但非常有效。協(xié)同應用R3(K)碼使得能以較高分辨率覆蓋更大的概率空間。圖5中作出了按照本發(fā)明的概率估算狀態(tài)表示例。如圖5所示,概率估算狀態(tài)表說明,一狀態(tài)計數(shù)器和與表中各自獨立狀態(tài)相關連的編碼。該表包含正的和負的狀態(tài)。該表顯示為具有37個正狀態(tài)和37個負狀態(tài)以及零狀態(tài)。負狀態(tài)指明一與正狀態(tài)不同的MPS。在一實施例中,當MPS為1時可采用負狀態(tài)而在MPS為0時,可采用正狀態(tài),或反之。應指出的是圖5所示的表僅只是舉例,其他的表可能具有或多或少的狀態(tài)及不同的狀態(tài)配置。起始,編碼器為0狀態(tài),這是R2(0)碼(即無編碼)其概率估算等于0.50。每一代碼字被處理過后,狀態(tài)計數(shù)器按照代碼字的第一畢特位增一或減一。在本實施例中,0代碼字增加狀態(tài)計數(shù)器的大小,而1狀態(tài)的代碼字減小狀態(tài)計數(shù)器的大小。因此,每一代碼字均使得狀態(tài)計數(shù)器改變狀態(tài)。換言之,概率估算組件改變狀態(tài)。但是,同樣的編碼可能與連續(xù)的狀態(tài)相關連。在這種情況下,完成概率估算無需改變每一代碼字的編碼。換句話說,對每一代碼字狀態(tài)是改變的;但是此狀態(tài)在某一次被映射到相同的概率。例如,狀態(tài)5至-5全都采用R2(0)碼,而狀態(tài)6~11與-6~-11則采用R2(1)碼。應用本發(fā)明的狀態(tài)表,使概率估算能保持用同樣的編碼器以非線性方式進行。應注意到,對于較低的概率同一的R碼包括有較多的狀態(tài)。這是因為在低概率時采用錯誤編碼時效率損失很大。行程碼狀態(tài)表的特性是在每一代碼字之后在狀態(tài)間轉移。在指定給因每一狀態(tài)改變而改變編碼的狀態(tài)表中,當在低概率區(qū)狀態(tài)轉換時,編碼在一非常接近熵效率極限的編碼與遠離熵效率極限的編碼之間轉換。這樣,損失(以編碼數(shù)據(jù)位數(shù)計)可能導致狀態(tài)間的躍變?,F(xiàn)有技術的概率估算組件,例如Langdon概率估算組件,因這種損失而降低性能。在較高概率行程碼中,因錯誤編碼的損失沒有這樣大。因此,在本發(fā)明中在較低概率區(qū)加有附加的狀態(tài),從而增加了二正確狀態(tài)之間的轉換變化,由此來抑制編碼的失效。應當指出,在某些實施例中,編碼器可能具有初始的概率估算狀態(tài)。換句話說,編碼器可以一予定的狀態(tài),例如狀態(tài)18開始。在一實施例中,可采用不同的狀態(tài)表,以使得一些狀態(tài)被用于最先的少數(shù)碼元以能加快自適應,而將一第二狀態(tài)表用于其余的碼元作較慢的自適應,從而能作概率估算的精確調節(jié)。在這種狀態(tài)下,編碼器有可能在編碼過程中快速地利用較理想的編碼。在另一實施例中,編碼流可為每一結構指定一初始概率估算。在一實施例中,不是按照一固定的數(shù)(例如1)來遞增和遞減,而是代之所根據(jù)已被計數(shù)的數(shù)據(jù)量或數(shù)據(jù)變化(穩(wěn)定性)量來使概率估算狀態(tài)作可變數(shù)增大。如果狀態(tài)表是對稱的,例如圖5中的表那樣,僅僅其一半(包含零狀態(tài))需要被加以存貯或以硬件實現(xiàn)。在一實施例中,狀態(tài)數(shù)以帶符號的幅值(1)補數(shù)形式加以存貯以利用對稱的優(yōu)點。在這種狀態(tài)下,可以取1的補數(shù)的絕對值來利用該表確定狀態(tài)并檢驗符號來確定MPS是1或是0。這就可能減少增量或減量狀態(tài)所需的硬件,因為狀態(tài)絕對值用來作表索引而1的補數(shù)絕對值計算很簡單。另一實施例為增加硬件效率可用硬接線或可編程狀態(tài)機代替狀態(tài)表。編碼變換器用硬接線狀態(tài)是此狀態(tài)表的現(xiàn)在這一優(yōu)選實現(xiàn)方案。圖6是說明本發(fā)明譯碼器硬件系統(tǒng)一個實施例的方框圖。參照圖6,該譯碼器系統(tǒng)600包括先進/先出(FIFO)緩沖器601,譯碼器602,存貯器603,及結構模型604。譯碼器602包括多重譯碼器。編碼數(shù)據(jù)610耦合到FIFO601以便為其接收。FIFO610耦合來把編碼數(shù)據(jù)送到譯碼器602。譯碼器602被連接到存貯器603,及結構換型604。結構換型604也被連接到存貯器603。結構換型604的一個輸出包含譯碼數(shù)據(jù)611。在系統(tǒng)600中,輸入到FIFO601的編碼數(shù)據(jù)610被排序并交錯分配。FIFO包含排好順序的數(shù)據(jù)。數(shù)據(jù)流被送到譯碼器602。譯碼器602要求以確定的順序由這些數(shù)據(jù)流來求取數(shù)據(jù)。雖然譯碼器602要求編碼數(shù)據(jù)的順序是非不重要的,它亦不是隨機的。利用在編碼器而不是在譯碼器按這個序列整理該編碼字,使該編碼數(shù)據(jù)交錯成一單個的數(shù)據(jù)流。在另一個實施例中,編碼數(shù)據(jù)610可包括一單個的未交錯的數(shù)據(jù)流(針對每一個結構槽的數(shù)據(jù)),結構類別,或概率類別被附加到數(shù)據(jù)流上。在這種情況下,F(xiàn)IFO610被存貯區(qū)610所代替,以便在數(shù)據(jù)運送到譯碼器602前接收所有編碼數(shù)據(jù),以便適當?shù)胤指钤摂?shù)據(jù)。由FIFO601接收編碼數(shù)據(jù)610,結構模型604決定當前結構槽。在一個實施例中,結構模型604根據(jù)先前象素和/或畢特位,決定當前結構槽。雖然在圖未表示,但結構模型604可以包括行緩沖器。行緩沖器提供必須的數(shù)據(jù),或樣板,通過它們,結構模型604決定當前結構槽。例如,結構是以當前象素附近的象素值為基礎,行緩沖器可以被用來存貯用于提供特定結構的附近的那些象素的象素值。根據(jù)結構槽,譯碼器系統(tǒng)600從存貯器603取出譯碼器狀態(tài)用于當前結構槽。在一個實施例中,譯碼器狀態(tài)包括概率估算模塊(PEM)狀態(tài)及位發(fā)生器狀態(tài)。PEM狀態(tài)決定用于譯出新編碼字的代碼。位發(fā)生器狀態(tài)保留當前運行的位的記錄。根據(jù)結構模型604提供的地址,該狀態(tài)由存貯器603提供給譯碼602。該地址訪問存貯對應結構槽信息的存貯器603中的一個位置。一旦從存貯器603已經取出當前結構槽的譯碼器狀態(tài),系統(tǒng)600就決定下一個未被壓縮的位并處理譯碼器狀態(tài)。如果需要,那么譯碼器602就譯出新編碼字和/或更新運行計數(shù)。如果需要,除了位發(fā)生狀態(tài)外PEM狀態(tài)也被更新。而后,譯碼器602把新的代譯碼器狀態(tài)寫入存貯器603。圖7是說明本發(fā)明的碼器的一個實施例。參照圖7,譯碼器包括移位邏輯701,位發(fā)生器邏輯702,"新K"邏輯703,PEM更新邏輯704,新編碼字邏輯705,PEM狀態(tài)到高速存貯器邏輯706,編碼一屏蔽邏輯707,編碼-MaxPL,屏蔽及R3分離擴展邏輯708,譯碼邏輯709,多路轉換器710,及運行計數(shù)更新邏輯711。移位邏輯701被連接來接收編碼數(shù)據(jù)輸入713及狀態(tài)輸入712(從存貯器來)。移位邏輯701的輸出也被連接到位發(fā)生邏輯702,"新K"發(fā)生邏輯703及PEM更新邏輯704,并作為他們的一個輸入。位發(fā)生邏輯702也連接來接收狀態(tài)輸入712并產生譯碼數(shù)據(jù)輸出到結構模型。新K邏輯703產生一個輸出,該輸出被送到編碼-屏蔽邏輯707的輸入。PEM更新邏輯704也連接到狀態(tài)輸入712并產生狀態(tài)輸出(到存貯器)。狀態(tài)輸入712也連接到新編碼字邏輯705的輸入及PEM狀態(tài)-編碼邏輯706。PEM狀態(tài)-編碼邏輯706的輸出連接到擴展邏輯708并由其接收。擴展邏輯708的輸出連接到譯碼邏輯709及運行計數(shù)更新邏輯711。譯碼邏輯的另一個輸入連接到編碼-屏蔽707的輸出。譯碼邏輯709的輸出連接到MUX710的一個輸入。MUX710的另一個輸入連接到狀態(tài)輸入712。MUX710的選擇輸入連接到新編碼字邏輯705的輸出。MUX710及擴展邏輯708的輸出和編碼-屏蔽邏輯707輸出一起被耦合到運行計數(shù)更新邏輯711的兩個輸入。此運行計數(shù)更新邏輯711的輸出被包括在狀態(tài)輸出中送到存貯器。移位邏輯701移入編碼數(shù)據(jù)流的數(shù)據(jù)。根據(jù)編碼數(shù)據(jù)輸入及狀態(tài)輸入,位產生邏輯702產生譯碼數(shù)據(jù)給結構模型。新K邏輯703也使用該被移入的數(shù)據(jù)及狀態(tài)輸入以便產生一新K值。在一個實施例中,新K邏輯703使用PEM狀態(tài)及編碼數(shù)據(jù)的第一位來產生新K值。根據(jù)新K值,編碼-屏蔽邏輯707產生為下一個編碼字的RLZ屏蔽。下一個編碼字的RLZ屏蔽被送到譯碼邏輯709及運行計數(shù)更新邏輯711。PEM更新邏輯704更新該PEM狀態(tài)。在一個實施例中,使用現(xiàn)存的狀態(tài)更新PEM狀態(tài)。該被更新的狀態(tài)被送到存貯器。新編碼字邏輯705決定是否需要一個新的編碼字。PEM狀態(tài)-編碼邏輯706使用狀態(tài)輸入712決定用于譯碼的編碼。該編碼被輸入到擴展邏輯708,以便產生最大運行長度,現(xiàn)行屏蔽及R3分離值。譯碼邏輯709譯碼編碼字以便產生運行計數(shù)輸出。MUX710或者選擇譯碼邏輯709的輸出或者選擇狀態(tài)輸入712,送到運行計數(shù)更新邏輯711。運行計數(shù)更新邏輯711更新該運行計數(shù)。包括譯碼器700的本發(fā)明的譯碼系統(tǒng)600,以流水線方式工作。在一個實施例中,本發(fā)明的譯碼系統(tǒng)600判定結構槽,估算概率,譯碼編碼字,及由運行計數(shù)產生信息位,以上全部均以流水線方式進行。該流水線譯碼過程可以與并聯(lián)譯碼系統(tǒng)及編碼系統(tǒng)結合使用,后者見包括在題目為"數(shù)據(jù)并行譯碼及編碼的方法及裝置"的轉讓給本發(fā)明共同受讓人的目前未決專利申請[序號08/016,035(1993.2.10)]申請中的描述。圖8敘述了譯碼系統(tǒng)的流水線結構的一個實施例。參照圖8,用數(shù)字1-6編號的6個階段表示本發(fā)明流水線譯碼過程的一個實施例。第一階段中,判定現(xiàn)行結構槽(801),第二階段,在現(xiàn)行結構槽已經被判定以后,執(zhí)行存貯器讀(802)將該結構槽的現(xiàn)行譯碼器狀態(tài)由存貯器中取出。如上所述,譯碼器狀態(tài)包括PEM狀態(tài)及信息位發(fā)生器狀態(tài)。在本發(fā)明的流水線譯碼過程的第三個階段中,產生一個去壓縮位(803)。這就使得結構模型可能使用一個信息位。在第三階段期間,兩個其他操作情況發(fā)生。PEM狀態(tài)被轉換成編碼型式(804)及做出關于是否必須譯出一新的編碼字的決定(805)也發(fā)生在第三階段。在第四階段中,譯碼系統(tǒng)處理編碼字和/或更新運行計數(shù)(806)處理編碼字及更新運行計數(shù)包括數(shù)個子操作。例如,譯出一個編碼字以便決定下一個運行計數(shù)或為現(xiàn)行編碼字(806)更新運行計數(shù)。如果需要的話,當譯碼新編碼字時,從輸入FIFO取出更多的編碼數(shù)據(jù)。在第四個階段中發(fā)生的另一個子操作是PEM狀態(tài)的更新(807)。最后,在譯碼流水線的第四階段中,如果現(xiàn)行編碼字的行程計數(shù)是0(808)的話,該新PEM狀態(tài)就被用來作出用于下一個編碼的運行長度0編碼字(以后說明)決定。本發(fā)明的譯碼流水線的第五個階段期間,帶有更新PEM狀態(tài)的譯碼器狀態(tài)被寫入存貯器(809)并為下一個編碼字(810)產生移位。在第六個階段中,完成下一個編碼字的移位。本發(fā)明的流水線譯碼,實際上是從關于是否開始譯碼過程的一個決定開始的。這個判斷是根據(jù)在FIFO中是否有足夠的數(shù)據(jù)送到本發(fā)明的譯碼器而做出的。如果FIFO沒有足夠的數(shù)據(jù),那么該譯碼系統(tǒng)被停止運轉。在另一種情況下,當譯碼數(shù)據(jù)輸出到一個不可能接收從譯碼器來的所有數(shù)據(jù)輸出的外圍設備時,也可認為譯碼系統(tǒng)可能停止運轉。例如,當譯碼器正在給圖象顯示接口及其相應的圖象電路提供輸出時,而圖象可能顯示太慢,這時,就需要停止譯碼器工作,而讓圖象追上。一旦作出譯碼過程開始的決定,由結構模型決定現(xiàn)在結構槽。在本發(fā)明中,通過檢驗早先的數(shù)據(jù)來確定現(xiàn)行結構槽。這種早先的數(shù)據(jù)可以被存入行緩沖器中并可以包括從現(xiàn)在行和/或早先行來的數(shù)據(jù)。圖9是說明一二進制位圖的一個實施例,這兒對一個給定信息位來自現(xiàn)在行及早先行的信息位被用作結構模板。就一早先數(shù)據(jù)而論可使用一模板來設計行緩沖器的信息位,這樣,就根據(jù)被檢驗的早先數(shù)據(jù)是否與該模板相匹配來選擇現(xiàn)行數(shù)據(jù)的結構槽。這些行緩沖器可以包括位移位寄存器。一個模板可以用來作每個n-位圖象的位面。在一個實施例中,當下一個流水線階段期間通過輸出一個地址給存貯器而選擇結構槽。該地址可以包括一個予定數(shù)目例如三位的信息位,去辨認該位面。通過使用三個信息位,就可以辨認象素數(shù)據(jù)中的信息位位置。用來決定結構的模板也可以作為地址的一部分表示出來。把用來辨認位面的信息位及辨認模板的信息位聯(lián)合起來以便在存貯器中產生一特定位置的地址,該存貯器包括由那些信息位所確定的結構槽的狀態(tài)信息。例如,利用三個信息位決定一特定象素的信息位位置及在該模板中的每個早先象素中相同位置的十個早先信息位,這就可以產生13-位結構地址。使用由結構模型產生的地址,去訪問存貯器(例如RAM)就獲得狀態(tài)信息。該狀態(tài)包括PEM狀態(tài)及位發(fā)生狀態(tài)。PEM狀態(tài)包括現(xiàn)行概率估算,而位發(fā)生狀態(tài)保留現(xiàn)在運行的信息位記錄。超過一個狀態(tài)的地方使用同樣的編碼,PEM狀態(tài)可以不包括概率類別或編碼名稱,而是包括在一個表格內的索引,例如,該表如圖5所示。當使用如圖5所示的表格時,PEM狀態(tài)將還提供最大或然碼元(MPS)作為辨認該現(xiàn)行PEM狀態(tài)是被定位在該表的正邊還是負邊的一種方法。位發(fā)生狀態(tài)可以包括計數(shù)值及LPS是否存在的標記。在一個實施例中,還包括用于譯出下一個編碼字的當前運行的MPS值。在本明中,為了減小運行計數(shù)器所要求的空間,所以位發(fā)生器狀態(tài)是被存貯在存貯器中。如果用于每個結構的計數(shù)器,在系統(tǒng)中所消耗的空間較小的話,那么位發(fā)生狀態(tài)就沒有必要存貯在存貯器中。在一個實施例中,對每一個結構槽,存貯器包括如下的狀態(tài)信息(1)當前運行計數(shù)或運行長度零(RLZ)屏蔽;(2)如果在運行結束有一個LPS,用一信息位作標記;(3)MPS的現(xiàn)行值;(4)包括MPS值的一個PEM狀態(tài),用于下一個編碼字;(5)一個連續(xù)位。正如以后將要說明的,連續(xù)位及RLZ屏蔽可供增加位發(fā)生速度之用。在其他的執(zhí)行過程中可以不需要連續(xù)位及RLZ屏蔽。連連續(xù)位及RLZ屏蔽將在下面更詳細討論。用于一個結構槽狀態(tài)信息的執(zhí)行過程,并包括用來表示他們信息位的數(shù)目的兩個例子如表8可所示。表8—每一個結構槽的位數(shù)在一個實施例中,當一個有效的運行計數(shù)是狀態(tài)部分時,連續(xù)標記等于邏輯1,當在運行的末端輸出LPS時或者當解碼一個新編碼字時,連續(xù)標記等于邏輯0。當在當前運行的末端有一個LPS時,LPS現(xiàn)在的標記等于邏輯1。當連續(xù)標記是邏輯1時,記數(shù)指示當前運行計數(shù)當連續(xù)標記是0時,記數(shù)指示運行長度0編碼字的RLZ屏蔽。MPS值表示當前運行的MPS是否是"0"或"1",而PEM狀態(tài)包括下一個編碼字的MPS值。應該注意,在流水線過程可以開始以前,可能要求該解碼系統(tǒng)的一些初始化。這樣的初始化可以包括解碼器狀態(tài)存貯器置零。這可能通過使結構模型借助于一個或更多的控制信號,順序地產生每個存貯器位置的地址,同時位發(fā)生器及概率估算組件把零輸入到存貯器,來實現(xiàn)。在流水線的第三階段中,在從存貯器(例如RAM)獲得得譯碼器狀態(tài)以后,如果沒有全部譯出一個編碼,則輸出一個信息位。在一個實施例中,本發(fā)明使用一位(標記)上面稱之為連續(xù)位來指明結構槽當前運行計數(shù)非零,即就是運行計數(shù)比零大。根據(jù)連續(xù)位的狀態(tài),根據(jù)在運行的末端是否存在LPS,及當前編碼字是否是一個運行長度零編碼字,本發(fā)明產生一個信息位作為輸出。如果連續(xù)位是真(例如是邏輯1)表示沒有零運行計數(shù),那么輸出是MPS。否則,如果連續(xù)位不是真(例如是邏輯0),但是LPS是在運行末端(例如,邏輯1)那么,在運行的末端即發(fā)送出LPS。如果連續(xù)位不是真而LPS存在與否的指示也不是真,那么就對一個編碼字檢驗編碼數(shù)據(jù)流以便決定發(fā)送的特殊位。如果當前編碼字不是RLZ編碼字,那么發(fā)生的信息位是MPS。換句話說,如果當前編碼字是RLZ編碼字,那么,由本發(fā)明發(fā)生的信息位是LPS。表9是由狀態(tài)信息產生的信息位的真值表及RLZ編碼字檢測的結果。在表9中"X"表示"不考慮"值。表9-位發(fā)生真值表在本發(fā)明中,根據(jù)PEM狀態(tài),作出一個編碼字是否是RLZ編碼字的決定。PEM狀態(tài)決定被使用的R-編碼,不同的R-編碼有不同的RLZ編碼字。在一個實施例中,RLZ編碼字由"1"信息位組成,然而,"1"的數(shù)目按照當前R-編碼改變。例如,對R2(0)RLZ是"1";對R2(1)RLZ是"11"等等,而對R2(12)RLZ是"1111111111111"。當連續(xù)位被清零時,RLZ屏蔽被存入當前結構槽的計數(shù)區(qū)段,而不是存貯零的運行計數(shù)。RLZ屏蔽能使很快作出在編碼數(shù)據(jù)中是否存在有足夠的"1"信息位的決定,以便指定一個RLZ編碼字。因為-RLZ編碼字至少由一個"1"信息位組成,RLZ可能是比最長的RLZ編碼字少一個信息位。在一個實施例中,對R2(0)RLZ屏蔽是"000000000000",對R2(1)及R3(1)RLZ屏蔽是"000000000001",對R2(2)是"00000000011"等等,直到對R2(12)是"111111111111"。為了實現(xiàn)表9的真值表,圖10中敘述了位發(fā)生電路一個實施例。參照圖10,位發(fā)生電路1000包括MOT門邏輯1001-1002,OR門邏輯1003-1004,AND門邏輯1005-1006及XOR門邏輯1007。NOT門邏輯1002被連接接收其輸入端的RLZ屏蔽信息。NOT門邏輯1002的輸出連接到OR門邏輯1003的一個輸入。在一個實施例中,NOT門邏輯邏輯1002的輸出包含n信息位,這里n是一個整數(shù)等于最大的編碼字數(shù)量減1。OR門邏輯1003的另一個輸入連接以接收以第二個信息位開始的編碼數(shù)據(jù)的n信息位。OR門邏輯1003的輸出連接到AND門邏輯1005的輸入端。編碼字的第一信息位也是連接到AND門邏輯1005。AND門邏輯1005的輸出連接到OR門邏輯1004的一個輸入端。編碼數(shù)據(jù)的一個單獨的信息位也連接到AND門邏輯1005的輸入端中的一個。OR門邏輯1004的另一個輸入連接以接收LPS是否存在的位指示。OR門邏輯1004的輸出連接到AND門邏輯1006的一個輸入。AND門邏輯1006的另一個輸入連接到NOT門邏輯1001的輸出。NOT門邏輯1001的輸入連接到連續(xù)位。AND門邏輯1006的輸出連接到XOR門邏輯1007的一個輸入。XOR門邏輯1007的另一個輸入連接以接收當前MPS值。XOR門邏輯1007的輸出代表流水線第三級所產生的信息位。NOT門邏輯1001,OR門邏輯1004,AND門邏輯1006及XOR門邏輯1007執(zhí)行表9中敘述的真值表。NOT門邏輯1002,OR門邏輯1003,及AND門邏輯1005決定RLZ編碼字是否存在。當連續(xù)位是邏輯1(例如,真的)時,那么輸入到AND門邏輯1006是邏輯0,這樣XOR門邏輯1007的輸入端中的一個是邏輯0。在這種情況下,MPS是由電路1000輸出的,其值是不予考慮的。換句話說,如果連續(xù)位是邏輯0(例如,假的),那么,AND門邏輯1006的輸出有賴于OR門邏輯1004的輸出。在這種情況下,如果LPS目前的指示是邏輯1(例如,真的),在運行的末端就有一個LPS的指示,那么OR門邏輯1004輸出是邏輯1,這樣AND門邏輯1006輸出一個邏輯1給XOR門邏輯1007,在這種情況下由XOR邏輯1007產生的信息位包括與MPS相反的位,或LPS。假如連續(xù)位是邏輯0而LPS目前的指示也是邏輯0,那么XOR門邏輯1007的輸出是以RLZ編碼字指示信號為根據(jù)。當位發(fā)生電路1000接收一組輸入時,如果RLZ編碼字是存在的話,NOT門邏輯1002及OR門邏輯1003都產生"1"。AND門邏輯檢測由OR門邏輯1003輸出的所有信息位是否是"1",如果是,就確定"RLZ編碼字"信號。當RLZ編碼字信號被確定時,OR門邏輯1004輸出一個邏輯1。如果連續(xù)位是邏輯0(例如不是真的),那么,AND門邏輯1006的輸出是邏輯1。當AND門邏輯1006的輸出是邏輯1時,LPS是輸出。然而,如果AND門邏輯1005不檢測由OR門邏輯1003來的所有信息位是當作"1",那么RLZ編碼字信號是邏輯0,這樣OR門邏輯1004的任何輸出是低的而AND門邏輯1006的輸出也是低的。在這種情況下,XOR門邏輯1007的輸出是MPS。在一個實施例中,在從一個外存貯器讀出的其他輸入被鎖存以前,該編碼數(shù)據(jù)輸入是穩(wěn)定的。用來傳輸編碼數(shù)據(jù)的編碼數(shù)據(jù)總線的寬度是最長RLZ代碼字的量。在一個實施例中,數(shù)據(jù)總線數(shù)量是13位寬。在這種情況下,如果RLZ代碼字存在,NOT門邏輯1003及OR門邏輯1003產生13個"1"位。這里采用13個2位的OR門,使OR門邏輯1003產生13個"1"位。AND門邏輯1005接收OR門邏輯1003所有的輸出并檢測它的輸入的13位是否都是"1"。使用一個13輸入AND門,使AND門邏輯1005檢測OR門邏輯1003的輸出。如果13位都是"1",那么AND門邏輯1005就確定"RLZ編碼字"信號。因為所有RLZ編碼字的第一位總是"1",帶有相關NOT門及OR門的一個RLZ屏蔽位即被刪去。在第三個階段,概率狀態(tài)與位發(fā)生被并行處理。在本發(fā)明中,PEM把PEM狀態(tài)轉換成一個編碼。在一個實施例中,這個轉換是用組合邏輯完成的。在處理PEM狀態(tài)中,本發(fā)明決定當前編碼,以及該編碼的屏蔽以便計算編碼流。處理PEM狀態(tài)以獲得R-編碼的K值及R值。在一個實施例中,用7個信息位代表PEM狀態(tài),并被轉換成4位信息代表K值及1位信息表示該編碼是否是R3編碼。圖11說明這種轉換邏輯。7個信息位中的6個信息位被邏輯1101接收作為產生R3及K值的量。另一個信息位是用來辨認MPS值的符號信息位。如果R3指示位是在第一個邏輯狀態(tài)(例如,邏輯1),那么該編碼是R3編碼。如果R3指示位是在第二個邏輯狀態(tài)(例如,邏輯0),那么該編碼是R2編碼。表10是在邏輯1101的一個實施例中,說明組合邏輯的真值表。表10-編碼轉換狀態(tài)真值表在另一個實施例中,R3信息位值,其編碼轉換狀態(tài)可以提前執(zhí)行。當PEM譯碼期間,K值及當前表位置(它的例子)可以然后一齊被存入存貯器并被存取。使用由R3及K值所表示的該編碼,本發(fā)明產生最大運行長度,屏蔽及R3分離值。在一個實施例中,產生的最大運行長度,屏蔽及R3分離值,是與使用邏輯實現(xiàn)真值表(如表11所示)同時進行的。參照表11,"X"表示"不考慮"。表11—把代碼轉換到譯碼所需信息的真值表<<p>表11中,屏蔽值等于(2k)-1。這個屏蔽值也被用作當前RLZ屏蔽。如果R3標記是表示該R3碼是用來作譯碼的,(例如R3標記被設置為邏輯1),則R3分離值等于2(k-1)。最大運行長度早已被說明。在流水線的第三階段中,還并行發(fā)生的是本發(fā)明決定是否需要一個新編碼字,當譯碼處理不是在運行的中間,就需要一個新編碼字。換句話說,如譯碼器是在運行的中間,那譯碼處理就不需要新編碼字。在一個實施例中,要作出是否需要一個新編碼的決定是根據(jù)連續(xù)位及LPS標記。如果連續(xù)位是0,LPS也是0,那么就產生一個新編碼字。圖12是完成新編碼字決定邏輯的一個實施例的方框圖。參照圖12,電路1200包括OR門邏輯1201及NOT門邏輯1202。OR門邏輯1201被連接用來接收連續(xù)位及LPS的目前標記。OR門邏輯1201的輸出連接到NOT門邏輯1202的輸入,如果連續(xù)位及LPS目前標記兩者都是邏輯0那么NOT門邏輯1202就輸出所需要的新編碼字標記。還是在第三階段中,產生一個K的新值。在一個實施例中,按照表12的真值表,根據(jù)編碼數(shù)據(jù)的第一個信息位及PEM狀態(tài),產生該新—K的新值。表12—K的新值真值表<p>在第四個階段,譯碼一個新編碼字包括多路轉換最大運行長度或者該編碼數(shù)據(jù)流的被屏蔽出來的一個計數(shù)。如果采用R3編碼,在編碼數(shù)據(jù)流中存入一個計數(shù)有三種可能的方法。用邏輯把代碼擴展成為最大運行長度及屏蔽信息。也要檢測0的計數(shù),以便使RLZ編碼字屏蔽可以輸出而不是運行計數(shù)輸出。如果計數(shù)比1大,更新當前編碼定的運行計數(shù)要求減小該計數(shù)。0的計數(shù)就要被RLZ編碼字屏蔽所取代。作為由K值及R3值所表示的當前編碼,被轉換成最大運行長度,"1"編碼字的屏蔽及第一個長編碼字的R3編碼的值,這里指的是R3分離值。屏蔽值表示在一個編碼字中用于一給定編碼的有效信息位的數(shù)目。使用這個信息,本發(fā)明就能譯碼一個代碼字。首先判斷在運行的末端,是否有一個LPS,去譯碼當前代碼字。在一個實施例中,這個判斷是通過檢驗第一個信息位去實現(xiàn)的。如果第一個信息位是邏輯1,那么LPS就在運行的末端。如果是這種情況,由代碼字所代表的運行計數(shù)就被確定了。通過一代碼字表示的運行長度的確定是由譯碼邏輯1300完成的,如圖13所示。參照圖13,譯碼邏輯包括NOT門邏輯1301,移位邏輯1302-1303,AND門邏輯1304,加法器邏輯1305及多路轉換器(MUX)1306。該最大運行長度連接到MUX1306的輸入并使其接收。MUX1306的另一個輸入連接到加法器邏輯1305的輸出,及AND門邏輯1304的輸出,及下一個RLZ屏蔽(在第三流水階段由編碼—屏蔽邏輯產生)。AND門邏輯1304的輸出連接到加法器邏輯1305的輸入端中的一個輸入端。加法器邏輯1304的另一個輸入連接到R3分離值。AND門邏輯1304的輸入連接到移位邏輯1302及1303。移位邏輯1303的輸入連接到對于代碼的屏蔽。移位邏輯1302的輸入連接到NOT門邏輯1301的輸出,NOT門邏輯1301的輸入連接編碼數(shù)據(jù)。譯碼邏輯1300還包括產生LPS是否存在的指示的邏輯1310。給定當前編碼字,就決定了運行計數(shù)。對于"0"代碼字,最大運行長度作為運行計數(shù)被輸出。對于R2代碼字,由NOT門邏輯1301倒相的編碼數(shù)據(jù)通過AND門邏輯1304與屏蔽值相"與"以便產生運行計數(shù)(這兒,移位器1302及1303不移位屏蔽)。對于短的R3代碼字(即就是,第一位和第二位是邏輯1的R3代碼字),該運行計數(shù)是通過NOT門邏輯1301把編碼數(shù)據(jù)倒相,由移位器1302移位1,然后用AND門邏輯1304同由移位器1303移位1的屏蔽相與的結果。另外,對于R3長代碼字,如果第一位是1而下一位是0,那么編碼數(shù)據(jù)由NOT門邏輯1301倒相,由移位器1302移位1并用AND門邏輯1304同屏蔽相與,然后由加法器邏輯1305加到R3分離值上。該R3分離值是第一長R3代碼字的運行計數(shù)。在本發(fā)明中,R3分離值是2的指數(shù)。本發(fā)明的譯碼邏輯操作被概括在下面表13中表13—譯碼器操作如果運行計數(shù)是0,那么就輸出檢驗隨后的一個RLZ代碼字的屏蔽值,而不是運行計數(shù)。由譯碼器輸出的LPS現(xiàn)在位是簡單的代碼字位0。這被表示為邏輯1310,邏輯1310包括流水線延遲,以便使它產生與運行計數(shù)的產生相吻合。在執(zhí)行下一個操作過程中,產生一個新運行計數(shù),圖14是更新下個運行計數(shù)邏輯的一個實施例的方框圖。參照圖14,更新邏輯1400包括減法器邏輯1401及多路轉換器(MUX)1402。減法器邏輯1401被連接以便接收當前值并輸出一個比當前值小的值。MUX被連接以便接收當前值,減法器邏輯1401的輸出,當前RLZ屏蔽及下一個RLZ屏蔽。MUX1402的輸出是被更新的值,或下一個運行數(shù)。在本發(fā)明中,該缺席情況是針對被更新的運行計數(shù)成為比當前運行計數(shù)小1。在這個情況中,MUX1402輸出由減法器邏輯1401接收的值。運行計數(shù)0被RLZ代碼字屏蔽所代替。當輸出LPS時,RLZ代碼字屏蔽就無改變地通過了。這個操作是被概括在下面表14中表14—運行計數(shù)更新邏輯還與第四階段并行發(fā)生的是更新PEM狀態(tài)。根據(jù)代碼字的第一位,更新PEM狀態(tài)包括增加或減少該狀態(tài)。當當前狀態(tài)是0,MPS是被轉換而不是減少。在一實施例中,狀態(tài)必須不超過一個最大值。在本發(fā)明中,如果在狀態(tài)0時,碰到"1"代碼字時,就改變MPS;否則"1"代碼字就使狀態(tài)減量。而"0"代碼字使狀態(tài)增量,一直到最大狀態(tài)為止。PEM狀態(tài)更新真值表如下面表15所示。圖15-PME狀態(tài)更新真值表在一個實施例中,被更新的PEM狀態(tài)與當前PEM狀態(tài)相乘,以便使得僅在譯碼一個新代碼字時,才進行更新。還與第四階段并行發(fā)生的是,使用表11采用同樣邏輯把PEM狀態(tài)轉換成一個代碼并將其擴展為一個屏蔽來決定下一個RLZ代碼字(對于新PEM狀態(tài)),再根據(jù)表12中所產生的新K產生該代碼字。在另一個實施例中,PEM狀態(tài)更新邏輯(表15)的輸出連接到狀態(tài)至編碼轉換邏輯(附加的邏輯與邏輯1101相同)的輸入,以便產生新K值。一旦第四個階段被完成,該新位發(fā)生器狀態(tài)及PEM狀態(tài)就被寫入存貯器,應當指出,計數(shù),連續(xù)位,LPS值,以及MPS值都能改變。在第五個階段中,編碼數(shù)據(jù)流被移位到下個代碼字。在第6個階段完成移位操作。圖15是本發(fā)明移位器的一個實施例。參照圖15,移位器1550包括寄存器1500-1503,滾桶形移位器1504,累加器1505及代碼字大小測定單元1506。寄存器1500及1501被連接以接收編碼數(shù)據(jù)。寄存器1500也被連接到寄存器1501。寄存器1501連接到寄存器1502,寄存器1502連接到寄存器1503及桶形移位器1504。寄存器1503也連接到桶形移位器1504。累加器1505也連接到桶形移位器1504。代碼字大小測定單元1506被連接以接收R3指示,K值及從桶形移位器1504來的反饋,并輸出一個信號送到累加器1505。在該優(yōu)選實施例中,寄存器1501-1503是16位的寄存器,桶形移位器1504是32位到13位的桶形移位器,而累加器是4位的累加器。寄存器1500-1501接收從FIFO送來的32位的字,而寄存器1502-150332位的輸出給桶形移位器1504。無論什么時候,至少有一個未譯碼的32位數(shù)據(jù)送給桶形移位器1540。用編碼數(shù)據(jù)的兩個32位字予置四寄存器1500-1503使之初始化以便開始。該代碼字大小測定單元決定"1"代碼字是否存在,以及如果存在,那在"1"以后的多少位是當前代碼字的部分。在一個實施例中,代碼字大小測定單元1506的操作如下面表16所示表16—代碼字大小測定方框邏輯注意,K值是說明該編碼的運行長度參數(shù),即就是R2(K)或R3(K),而"X"表示"不考慮"值。累加器1505是一個四位的累加器用來控制桶形移位器1504,累加器1505通過從代碼字大小測定單元1506輸入的值來增加它的值。當累加器1505溢出時(例如,每次移位計數(shù)是16或更大),寄存器1501-1503就被時鐘啟動移位。所有其他的16位移位使得從FIFO來的一個新32位字成為被請求的。累加器1505的輸入是代碼字的大小,該大小由當前的代碼字及當前代碼字的最初1位或2位所決定。應該注意是某些實施例,寄存器1501-1504在譯碼開始以前必須用編碼數(shù)據(jù)使其初始化。注意,本發(fā)明的作流水線式譯碼器,在啟動結構模型之前不對每個結構槽的運行計數(shù)進行予解碼。因為這樣,存貯在存貯器中的狀態(tài)信息包括一個無效運行計數(shù)狀態(tài)。當對一個結構槽為無效運行計數(shù)狀態(tài)發(fā)生時,就譯碼一個新編碼字以便決定下一信息位。在初始化時,如果外部存貯器被置0,那么所有零的狀態(tài)應該指示必須譯碼一個新代碼字。所以在啟動位產生以前,不必對每一個結構槽的運行計數(shù)進行予譯碼。如果結構槽需要予譯碼,所有的結構槽都必須至少有一個不管是被使用或未被使用的代碼字。因為通常對一給定數(shù)據(jù)都有未被使用過的結構槽,這就影響壓縮效率。即使壓縮降低不顯著,予譯碼亦使非實時軟件編碼器復雜化,并使實時硬件編碼器實現(xiàn)極其困難。片載存貯器可以用來存貯每個結構槽的狀態(tài)信息。片載存貯器便于作較高速度操作及減少輸入/輸出(I/O)計數(shù)(減少整體費用)。在一個實施例中,如果希望的話片載存貯器只為較小的位發(fā)生器存貯足夠的狀態(tài)信息,而使用外部存貯器存貯附加的狀態(tài)信息。存貯器的多個存貯分區(qū)可以被用來減少對一些存貯區(qū)使用內部存貯器及作為其他用途的外部存貯器所需要的I/O。片載存貯器還可以被用作高速存貯器以便存貯從共用的結構送來的信息。然后,信息可以送往譯碼系統(tǒng)供使用,而不是從外部存貯器中存放。在一些實施例中,片載存貯器只可用來存貯較長運行計數(shù)的最低有效位部分,及僅僅在運行的末端或當需要訪問較高位進行計數(shù)時,才訪問外部存貯器。結構槽重復使用延遲是兩個作用的組合。在結構模型決定當前結構槽以后,使用一個給定的結構槽以后及它能被再次使用以前需要一個延遲。而所需的另一個延遲則是在使用一組結構槽中的一個結構槽以后及在能再次使用同一組中的另一個成員之前。一個延遲是因為存貯器使用了多個存貯器分區(qū)以便增加帶寬。例如,由于使用RAM的兩個存貯分區(qū),把結構槽分成兩組,即使用RAM第一存貯分區(qū)的第一組,及使用RAM的第二存貯分區(qū)的第二組。對存貯分區(qū)進行訪問,因此交替地使用兩組結構槽。當一組存貯分區(qū)正在用于讀取結構信息時,而另一組正在被寫入。這就意味著結構再訪問延遲是一個偶數(shù)的時鐘周期。第二個作用是在能為一給定結構槽讀RAM之前,必須經過足夠的時間,因為它前面已被用于計算正確的狀態(tài)信息(被更新PEM狀態(tài)及位發(fā)生器狀態(tài)),將其寫到RAM及移位到下一個代碼字。這些全部操作要求從流水線的第二階段直到第六階段來完成。為了減小結構槽再訪問延遲,有某些解決方法。在本發(fā)明中,一旦發(fā)生接著使用相同的結構槽模型,根據(jù)結構模型能指示解碼器的概念,結構槽再訪問延遲能夠減少。此時,欲被寫的結構槽數(shù)據(jù)可以被送出以便隨后使用。這就是說,替代將數(shù)據(jù)寫入而后再由存貯器讀出,而是可將數(shù)據(jù)直接送出以茲利用。在這種情況下,就可避免對存貯器的過多的寫和讀操作。在另一實施例中,當同一結構槽被接著使用時,可采用一特殊的結構槽。這在一些情況下將降低壓縮。不過,如果接著利用同一結構槽相當少見的話,這種壓縮的降低將不會產生對性能的損壞。這些特殊結構槽可以是無需附加RAM的"無編碼"結構槽。在另一實施例中,可將原始結構槽分成為"正常的"和"特殊的"結構槽。一單個結構槽可被用作針對許多正常結構槽的"特殊"槽。重訪問結構槽的延遲也可依靠譯碼器中加速對第二和接著的請求處理來降低。換句話說,相繼地處理同一結構槽中的兩個畢特位的時間,可能要少于獨立地處理的時間。例如,如像狀態(tài)至代碼的變換操作,就比較容易。本發(fā)明中采用的PEM不管可用的數(shù)據(jù)量如何均利用同一自適應方案。在另一實施例中,一種起始時較迅速自適應,而在更多可用數(shù)據(jù)出現(xiàn)時作較慢自適應的Bayesian方法可被用來作更正確的估算。另外,還可將PEM固定在一現(xiàn)場可編程門陣列(FPGA)或一可編程PEM狀態(tài)表/機中。結構模型是按應用確定的。因此,在一實施例中采用一外部結構模型。也可用可編程結構模型。圖16A是本發(fā)明的譯碼系統(tǒng)的一個實現(xiàn)方案的方框圖。圖16A中,方框1601-1607為現(xiàn)場可編程門陣列(FPGA)。方框1601-1604由具有移位能力的位發(fā)生器組成,連接成用于由FIFO接口接收編碼數(shù)據(jù)及由存貯器接收計數(shù)信息(例如位發(fā)生器狀態(tài))。位發(fā)生器塊1601-1604還連接到方框1605由存貯器(經由塊1605)接收PEM狀態(tài),以使塊1605實施PEM。位發(fā)生器塊1601-1604還連接到塊1606以產生一計數(shù)和PEM存貯器地址。塊1606還連接到塊1607。塊1607提供輸出到接口電路,例如一視頻接口,并可以連接到行緩沖存貯器。塊1606及1607實現(xiàn)接口外還完成本發(fā)明的結構模型。這樣,如圖16A中所示,四個位發(fā)生器(塊1601-1604)即共同使用由—FIFO給出的單一輸入數(shù)據(jù)流來處理編碼數(shù)據(jù)流,而PEM(塊1605)則為四個位發(fā)生器的每一個處理PEM狀態(tài)。所示的此四個位發(fā)生器作為同步的設備流水線共同工作。圖17說明此四個位發(fā)生器(例如塊1701-1704)如何協(xié)同結構模型(例如塊1706和1707)及概率估算組件(例如塊1705)工作。為著重說明此流水線結構,將對第一畢特位的操作繪出陰影。應當指出在當為進行下一次操作所要求的信息尚未就緒時位發(fā)生器設備具有空閑時間。應看到,多個位發(fā)生器并行操作是以錯列時間開始的,以能使流水線的第三、第四、第五和第六階段的每一個為這些位發(fā)生器之一在任一時刻執(zhí)行。換言之,此3-6階段中的每一個在每一周期執(zhí)行。依靠利用位發(fā)生器的錯列安排,本發(fā)明不為置于第六階段與第三階段之間的反饋回路所限制。每一位發(fā)生器在完成在第六階段中移位到下一代碼字之后,位發(fā)生器才能再在第三階段開始。對于一單個位發(fā)生器,在當?shù)谌⒌谒?、第五和第六階段的任何一個的設備被利用時,其他階段的設備沒有適當信息使它們能運行。這樣,位發(fā)生器的錯列就使得此四個階段的每一個并行地發(fā)生。第三和第四階段稱為位發(fā)生器的代碼字處理,而第五和第六階段則稱為位發(fā)生器的移位部分。在一實施例中,本發(fā)明采用代碼字處理的時間多路化,而移位操作則被用來由一代碼字處理部分和一移位部分生成兩個位發(fā)生器。換句話說,用于一個位發(fā)生器的硬件作為兩個虛擬位發(fā)生器動作。在這樣一種結構中,兩個位發(fā)生器和兩個移位器可以時間多路方式被用以提供與四個圖16A中的位發(fā)生器同樣的譯碼。在這種情況下,數(shù)據(jù)仍然必須按照恰當?shù)捻樞?,它應能保證對此二虛擬位發(fā)生器的每一個提供正確的數(shù)據(jù)。圖16B是這樣系統(tǒng)的一實施例的方框圖。在圖16B中,F(xiàn)IFO接口被連接到移位器1611和1612。移位器1611和1612還各自連接到BG1613和1614。BG1613和1614還通過塊1605連接到PEM存貯器、由塊1606和1607實現(xiàn)的結構模型、以及圖16B中同樣狀態(tài)的計數(shù)存貯器。在這一實施例中,BG1613和1604無須移位。編碼過程需要相當數(shù)量的緩沖存貯器??紤]為什么一系統(tǒng)需要緩存。數(shù)據(jù)進入編碼器的順序與譯碼器的輸出是相同的。但是由于許多熵編碼器的局部位特性,代碼字的順序可能很不相同。多重編碼器的任何一個均可能在送出一代碼字之前編碼數(shù)個畢特位。由于并行化,針對任一給定編碼器的畢特位能由原始數(shù)據(jù)流中許多畢特位隔離開。這些插入位被送往其他的編碼器,并可能產生數(shù)個,或者數(shù)百數(shù)千個代碼字。不過,譯碼器首先需要代碼字的第一畢特位。這樣,對于這一方案來說將代碼字重新排序是主要的?,F(xiàn)提出一種對這些代碼字作交錯處理的方法。數(shù)個編碼流的交替處理引起的系統(tǒng)復雜性在于編碼器上。當代碼字被交錯排列成數(shù)據(jù)流時,各個的編碼流要被加以緩沖存貯??赡苄枰罅康拇尜A設備,特別是如果對于一結構槽的數(shù)據(jù)要比對于其他結構槽的數(shù)據(jù)偏移多得多,或者極少引入時。在這兩種情況下,在該代碼字中欲予編碼的第一畢特位與最后位相距許多畢特位,而數(shù)個、可能是成百成千的其它代碼字由插入的數(shù)據(jù)生成。這些代碼字必須加以存貯。對于一不均衡的系統(tǒng),此時編碼過程是在計算機(具有大量存貯器和/虛擬存貯器)上非實時地完成的,這就不成問題。但在實時VLSI實際方案中這種存貯器就需要很高成本。為了能以有限的存貯器進行編碼,就需要在編碼器與譯碼器之間存某些信號連系,或者在數(shù)據(jù)流中明顯作出,或者是隱含的,此時達到存貯器的限制而且以適當方法作無損復元。這些方法對編碼效率確實存在著不同的影響。這種作明顯的或隱含的信號連系可以由譯碼器之外的電路、甚至作為編碼器的部分來實現(xiàn),如果該譯碼器具有一迫使一新代碼字被加以譯碼的輸入的話。這一輸入配合有足夠的狀態(tài)輸出來使該外部電路與譯碼器同步,從而能夠得到一將來能實時譯碼的"連接結構"。在數(shù)據(jù)流信號傳輸?shù)囊皇纠?,R2(K)的R3(K)碼的定義被改變得包括其后不跟隨有LPS的非最大MPS行程。這是由加入不跟隨有LPS的MPS的非最大長度行程來達到的。這是以對最低概率時發(fā)生的代碼字增加一畢特位來實現(xiàn)的。然后如果需要,就可以有用于非最大長度行程計數(shù)的可作唯一譯碼的前綴。表17說明-R2(2)碼及其特點。這種系統(tǒng)在未發(fā)生緩沖溢出時對編碼效率影響很小,而在發(fā)生溢出時則有較大影響。表17以有限存貯器編碼的一種方式是以隱含信號傳輸來模擬譯碼器上的緩存器。為此采用的一方法是使編碼器以有限再排序緩存器工作??蓪γ恳徊⑿芯幋a器指派一緩存器。當開始一代碼字時,對最終的代碼字在恰當?shù)木彺嫫髦斜A艨臻g,并對每一代碼字加以時間標記以確定代碼字應被置入信道的順序。當一緩存器中的最后位置被保留給一新代碼字時,一些代碼字被放入壓縮的位流而不管它們是否已被完全確定。具有最低時間標記的部分代碼字以選擇一短的而且正確指明迄至目前所接收到的碼元的代碼字結束。例如,在一R編碼器系統(tǒng)中,假如必須在一具有128個最大行程的行程編碼中為一系列100MPS提早完成一代碼字的話,那就可以采用此針對128MPS的代碼字,因為這正確地指明最先的100個碼元。在當此具有最低時間標記的代碼字已經被完成時,就可將其移出再排序緩存器并加進編碼流。這就可能使得先前完成的代碼字也被置入編碼流。如果強制完成一部分代碼字結果會使得一代碼字由裝滿的緩存器移走的話,編碼就能繼續(xù)進行。如果一緩存器仍然是充滿的,則該具有最低時間標記的代碼字就必須再次加以完成并加進編碼流。這一過程繼續(xù)進行直到原來裝滿的緩存器不再是滿的。圖18中表示出了這樣一編碼系統(tǒng)。在圖18中,結構模型(CM)1801用來接收原始數(shù)據(jù)并將其送往編碼器1802和1803。在一實施例中,CM1801將數(shù)據(jù)每隔一代碼字送往編碼器1802和1803。編碼器1802和1803對數(shù)據(jù)進行編碼并將欲加緩存的數(shù)據(jù)分別送至緩存器1804和1805。緩存器1804和1805每一個均包括有指明數(shù)據(jù)的臨時順序的時間標記。交錯處理器1806由緩存器1804和1805求取數(shù)據(jù)以生成作交錯排列的信道數(shù)據(jù)。每一緩存器1804和1805向編碼器1802和1803以及交錯處理器1806提供一隊列滿指示信號,在數(shù)據(jù)由各自的編碼器送往每一緩存器1804和1805以及在數(shù)據(jù)進一步成為交錯排列數(shù)據(jù)流的部分時作為請求機制指明緩存器1804和1805的狀態(tài)。在這種隱含信號傳輸方法中的譯碼器保持跟蹤與編碼器中同樣多的信息。譯碼器以時間標記和部分編碼字維持再排序緩存器。在正常情況下譯碼器并不需要這些進行譯碼,僅僅用其來確定何時編碼器因一緩存器裝滿而結束一部分代碼字。當譯碼器開始對一代碼字進行譯碼時,它將一時間標記列入再排序隊列。在譯碼器完成一特定代碼字時,就將時間標記由再排序隊列中去除。如果一緩存器裝滿,則具有最低時間標記的部分代碼字就必須由此緩存器中移出。任何沒有由該代碼字應用過的額外的結果因不對應于實時數(shù)據(jù)而被廢棄。例如,譯碼器可能接收到一表明128MPS的代碼字。在對100MPS譯碼后,譯碼器具有一裝滿的時間標記緩存器,并確定對應于編碼器早期完成的128MPS的代碼字。該譯碼器忽略其余已被譯碼的28MPS,并在下次出現(xiàn)這一結構時利用一新代碼字。正像編碼器那樣,譯碼器繼續(xù)舍棄代碼字直到原先裝滿的緩存器不再是裝滿的。圖19說明一譯碼器系統(tǒng)實施例的方框圖,圖中,信道數(shù)據(jù)由緩存器1901接收,將其送至編碼器1902和1904用于譯碼。編碼器1902和1904對數(shù)據(jù)進行譯碼。經譯碼的數(shù)據(jù)為CM1906取得,再將其作為原始未加工的數(shù)據(jù)輸出。時間標記緩存器1903和1905指明它們的編碼器的狀態(tài)。例如,它們指出何時編碼器裝滿數(shù)據(jù)。當出現(xiàn)這一情況時,就產生一隊列滿指示到編碼器,以指明此時編碼器不再接收用于譯碼的任何更多的數(shù)據(jù)。當這種情況不復存在時,編碼器就能重新接收要譯碼的數(shù)據(jù)。作顯明的信號傳輸?shù)睦邮且煌▓缶彺嫫鳡顟B(tài)的獨立的"狀態(tài)"結構槽。這一數(shù)據(jù)被編碼并送到編碼流中一獨立的譯碼器,可能但不一定是一專用的譯碼器。這一結構槽對每一交錯處理的代碼字均被作一次譯碼。這就是說,不管這是一個規(guī)則的(無緩存器溢出)交錯處理代碼字還是一個"強制的"(緩存器溢出)交錯處理字。對一"強制的"響應是設計上的問題。一種可能的響應是把一畢特位信號當作為在數(shù)據(jù)流內作信號傳輸情況中的前綴的等同物。當該溢出位起作用時,將1n編碼解釋為無LPS值的MPS值運行。如上所述,譯碼器將具有由數(shù)據(jù)流請求交錯處理字的確定順序。編碼器必須對這一過程加以模擬來適應同一順序。(注意,對于大多數(shù)可變長代碼,編碼器處產生的順序將與譯碼器處消耗的順序有很大的不同)。這種模擬隨譯碼器單元的設計而定有可能十分復雜。模擬這一順序的一種方法是完全重復編碼單元處的譯碼器。這樣,就能保證設計包括有在譯碼器處模擬中的任何給定設計中的存貯器和等待時間。在本發(fā)明中編碼器由獨立的數(shù)據(jù)流產生代碼字。這些代碼字是畢特位組成的交錯排列字。這些交錯排列字由正在再生數(shù)據(jù)流中的探測譯碼器根據(jù)需要的基礎上請求取得。每一被請求的交錯排列字被送給該探測譯碼器,同時被置入信道中(或者信息緩存器內)。這樣一系統(tǒng)如圖20中所示,圖中輸入數(shù)據(jù)為例如一結構模型或狀態(tài)機那樣的序列機2001所接收。序列機2001將數(shù)據(jù)依次分配到每一編碼器2002-2004。每一編碼器2002-2004對接收的數(shù)據(jù)進行編碼,然后分別存貯進緩存器2005-2007。交錯處理機2008用來接收由緩存器2005-2007所要求的數(shù)據(jù)。交錯處理機2008根據(jù)探測譯碼器2009所提出的順序由緩存器2005-2007請求并輸出經編碼的數(shù)據(jù)。緩存狀況邏輯2010連接到交錯處理機2008指明緩存器2005-2007的狀態(tài),作為對譯碼器作隱含的或明顯的信號傳輸中通告交錯處理機2008的一種方式。應看到此系統(tǒng)可以包括多于或少于三個編碼器。代碼字按要求傳送給譯碼器,并對標記以與它的進行編碼的同樣的相繼順序加以譯碼。譯碼器系統(tǒng)如圖21中所示,圖中,被編碼的信道數(shù)據(jù)為信道緩存器2101接收。信道緩存器2101將數(shù)據(jù)送給編碼器2101-2104以對它們進行譯碼。譯碼結果被送至序列機2105,例如一結構模型或狀態(tài)機,由其輸出數(shù)據(jù)。本發(fā)明可被用于非二進制編碼,例如Tunstall和霍夫曼碼。本發(fā)明的并行編碼和譯碼可以采用非二進制編碼,例如Tunstall碼。Tunstall碼是可變長至固定長的代碼。換言之,Tunstall碼在編碼過程中接收一可變長輸入產生一固定長短的輸出。因此,結果所得的編碼數(shù)據(jù)流就包含同樣長短的代碼字。Tunstall編碼的一個實施例如表18中所示。應該指出的是表18中所示的碼,除開該碼是采用的長度3的字組外,均與未編碼數(shù)據(jù),或R2(0)碼相同。表18長度3二進制Tunstall碼0.5MPS概率表19長度3二進制Tunstall碼0.6MPS概率<p>參照表18,"m"指示MPS,而"1"指示LPS。Tunstall碼的其他例子示于表21之中。應注意,這一編碼對具有接近0.60的概率時是很理想的,特別是對于概率在0.57與0.66之間時,比R2(0)碼或R2(1)碼能更好地運行。這樣,即使輸出尺度較小,Tunstall碼在最初二R碼間的間隙中亦能較R碼更好地工作。較大輸出Tunstall編碼最終可以人為地到接近熵極限。在本發(fā)明中,輸出大小可以固定為任何位長度。由于是固定長度的輸出,所有的數(shù)據(jù)排序操作就只需對這一尺度的代碼字進行。例如輸出大小可是8或12畢特。8位的代碼字特別適用于軟件運行。因為代碼字均為固定大小的,所以為每一譯碼功能塊執(zhí)行所需的僅只是簡單的移位。此移位邏輯可以每次位移同樣數(shù)目的畢特位置而不必考慮數(shù)據(jù)流中的代碼字,因為每一代碼字的尺度相同。因此結合本發(fā)明采用Tunstall碼,就使得進行譯碼期間所需的移位硬件和功能更為之簡化。另一系統(tǒng)示例是一JPEM霍夫曼編碼的變型。(這一系統(tǒng)同樣適宜于作MPEG霍夫曼編碼)在這種情況下,硬件設備(即劃分輸入數(shù)據(jù)流)的優(yōu)擇以一序列發(fā)生器狀態(tài)機實現(xiàn)。未被編碼的標記依次傳送到相鄰接的編碼器。例如,如果具有三個編碼器,每一編碼器就每隔三個標記接收一個標記。由于代碼字是可變長度,連接成固定長度字以及再排序作信道交錯處理的過程與前相同。這樣的系統(tǒng)如圖20中所示。這一系統(tǒng)的速度增加與編碼器數(shù)成正比。上述系統(tǒng)的速度將比一單個譯碼器幾乎快三倍。這樣,單一譯碼器每秒譯碼20×106標記時,三譯碼器系統(tǒng)則將以每秒60×106標記進行。在另一實施例中,五個20×106標記/秒的譯碼器將以100×106標記/運行。應指出的是,這已接近高分辨率電視(HDT)的最壞情況的標記速率。這一系統(tǒng)還具有編碼器所需的緩存很低而且是確定的(與數(shù)據(jù)無關)這種優(yōu)點。因為霍夫曼編碼為每一標記產生一代碼字及標記在編碼器之間相等地傳送,所以可確定最壞情況緩存器長度??紤]霍夫曼碼具有一最小代碼字長m,最大代碼安長L,和一交錯排列字尺度W。由于每一編碼器每n個數(shù)據(jù)標記發(fā)送至少該最小m畢特位和最多該最大L畢特位(n為編碼器數(shù)),最壞的情況發(fā)生在當一編碼器具有所有的最小代碼字而另一個具有所有的最大代碼字時。在一完全的交錯排列的代碼字產生之前的標記數(shù)為([W-1m]+1)]]>。這樣,對于此最壞情況所需的緩存為([W-1m]+1)L]]>。一些典型的數(shù)可以是m=3,L=16,W=32。因而為每一編碼器單元所需的緩存將為位。([32-1m]+1)*16=192]]>采用這種并行方法有兩個可行的自適應霍夫曼編碼實施例。一個例子中,根據(jù)的碼元的一個字母的當前概率分布有數(shù)種可用的霍夫曼編碼。此數(shù)據(jù)在大小上可能是任何畢特位數(shù)。在代碼字和數(shù)據(jù)值之間為1對1的映射。這一類型的系統(tǒng)可利用碼元的概率作為數(shù)據(jù)流分離器,即并行化功能。除這些差別外,本發(fā)明的交錯處理完全如所描述地進行。另一種可能是,霍夫曼碼根據(jù)碼元的自適應概率對哪一代碼字代表哪一碼元加以轉換。這一代碼可以與JPEG基線霍夫曼編碼同樣的方式重復和實現(xiàn)。非基線JPEG圖象壓縮標準提出一系列表述量化變換系數(shù)的結構。這一結構模型在JPEG靜止圖象數(shù)據(jù)壓縮標準中有詳細說明。雖然此標準是指明用于熵編碼的QM編碼器,但任一無損二元熵編碼器均可能加以利用。而且,數(shù)種二元熵編碼器可被用來處理不同的結構,這些編碼器也能與本發(fā)明的并行運行。特別是,數(shù)個QM編碼器或數(shù)個R編碼器能被連同JPEG結構模型一齊加以利用來加速譯碼過程。只要譯碼器是確定的,這種基本的交錯模型就可能與任何編碼配合工作。所以,例如說,QM編碼器和R編碼器就能并行采用。有損壓縮器,例如JPEG可加應用,并且能與無損壓縮器混合運行。數(shù)據(jù)甚至可以是不同類型的。在本發(fā)明的數(shù)據(jù)壓縮系統(tǒng)中,一個值可以采用一個結構。例如,一特定的概率分布可以用霍夫曼碼加以編碼,如表20中所示。表20中對值-3至+3進行編碼。表20小整數(shù)的霍夫曼</tables>如果表20中的編碼被用作為位發(fā)生單元,就采用一種結構來對該值譯碼。在本發(fā)明的一實施例中,對于不同類型的值可采用多重非二進制編碼。在這種情況下,結構模型將由適當?shù)姆嵌M制結構取得下一個值,而不是如現(xiàn)有技術中那樣取得數(shù)個二進制判定結果。例如,如果要將一小整數(shù)在同一的-3至+3的范圍內作二進制譯碼,就必須利用多重結構。圖22中列出了一典型的譯碼過程,其中結構被標號為1-6。結構模型將首先利用結構#1來確定該未知值是否等于零。在接到回答后,或者已了解該未知值,或者還需由它們自己的結構提出進一步的問題。這樣,對一單個值進行譯碼就可能需要多重結構。對于較大的值,有可能需要針對正被譯碼的值中的每一畢特位需要對幾乎二個結構加以譯碼。依靠采用單一的結構,本發(fā)明就避免了采用數(shù)個結構來對一個值進行譯碼。而且依靠應用非二進制代碼字,譯碼就可能快得多,結構模型也能簡單得多。應當看到的是,再排序電路的運行與采用二元判定相同,除了它是對代表整個值的代碼字進行的。像非基線JPEM圖象壓縮標準之類的系統(tǒng)依靠采用二元判定和與每一被壓縮碼元的相適應,能取得高性能壓縮。不過,要將變換系數(shù)的幅值分解成數(shù)個二元判定的過程可能很慢。為對一共有幅值為128的單一系數(shù)進行譯碼有可能必須多達16個二元判定。相反,霍夫曼碼可能僅用一個操作來指明一個系數(shù)值。霍夫曼碼對于進行像一特定系數(shù)是否為零的判定進行編碼將不是很有效的。在數(shù)據(jù)交錯處理系統(tǒng)中可能采用混合方法。一個QM編碼器可被用來確定數(shù)個二進制結果,然后一霍夫曼編碼則可被用來指明系數(shù)的實際值。這兩個編碼的輸出可以通常的方式作交錯處理,霍夫曼碼將使一些操作在速度上大大增加,而將QM編碼器用于其他的操作則可保持高的壓縮效率。音頻和視頻交錯處理在低位速率的壓縮數(shù)字音頻—視頻系統(tǒng)中是一個問題。一種低位速率視頻交錯系統(tǒng)如圖23中所示,圖中,一音頻編碼器2301和一視頻編碼器2302由各自的音頻和視頻源設備產生編碼數(shù)據(jù)。編碼數(shù)據(jù)為需要者按照探測譯碼器2304請求。此譯碼數(shù)據(jù)被輸出到信道中作為單一的交錯處理的信號流。數(shù)據(jù)由信道緩存器2305接收,根據(jù)對數(shù)據(jù)的要求再將數(shù)據(jù)送往音頻譯碼器2306或視頻譯碼器2307。隨著,音頻譯碼器2306和視頻譯碼器2307以再生格式的原數(shù)據(jù)輸出。音頻和視頻數(shù)據(jù)在同一信道上傳送,必須加以同步地譯碼。通常是采用數(shù)據(jù)流內的標志來區(qū)別音頻和視頻數(shù)據(jù)。在現(xiàn)有技術中的這種標志器使得壓縮效率降低。采用本發(fā)明的交錯處理,數(shù)據(jù)可根據(jù)音頻和視頻壓縮器的要求加以交錯處理,而無需標志器。交錯處理使得能理想地壓縮數(shù)據(jù)。任何壓縮系統(tǒng)的一個優(yōu)點就是降低一組數(shù)據(jù)的存貯需求。本發(fā)明的并行系統(tǒng)可以替代任何目前由無損編碼系統(tǒng)所實現(xiàn)的應用。這些包括傳真壓縮、數(shù)據(jù)庫壓縮、位映象圖形圖象的壓縮、以及圖形壓縮標準例如JPEG和MPEG中變換系數(shù)的壓縮。本發(fā)明使得使對于不要求高速度的應用中亦能作小型高效的硬件和相對較快的軟件實現(xiàn)的理想優(yōu)擇。本發(fā)明勝過現(xiàn)有技術的真正優(yōu)點在于以非常高的速度運行的可能性,特別是對于譯碼。以這種方式,本發(fā)明能促成對昂貴的高速信道的充分利用,例如高速計算機網絡,衛(wèi)星和地面廣播信道。圖24描述了這樣一個系統(tǒng),其中,廣播數(shù)據(jù)或者由一高速計算機網絡提供數(shù)據(jù)到譯碼系統(tǒng)2401,后者對該數(shù)據(jù)進行譯碼產生輸出數(shù)據(jù)。當前的硬件熵編碼器(如Q編碼器)將減低這些系統(tǒng)的工作效率。所有這些系統(tǒng)均被設計得以昂貴代價來實現(xiàn)高的帶寬。因譯碼器減低工作效率就會導致相反的作用。本發(fā)明的并行系統(tǒng)不僅提供這些高帶寬,而且由于數(shù)據(jù)能以壓縮形式傳送實際上更增加了有效帶寬。本發(fā)明的并行系統(tǒng)還能用來獲得中速信道像ISDN、CD-ROM及SCSI中更有效的帶寬。這種帶寬匹配系統(tǒng)如圖25中所示,其中,來自例如CD-ROM,以太網絡、小型計算機標準接口(SISI)或其他類似信號源的數(shù)據(jù)被送往譯碼系統(tǒng)2501,后者對數(shù)據(jù)進行譯碼生成輸出數(shù)據(jù)。這些信道比一些當前的譯碼器速度更高。經常這些信道被用來協(xié)同要求比信道更高帶寬的數(shù)據(jù)源工作,例如實時視頻或以計算機為基礎的多媒體。本發(fā)明的系統(tǒng)可實現(xiàn)帶寬匹配的作用。本發(fā)明的系統(tǒng)是對像新近出現(xiàn)的高分辨率電視(HDTV)及MPEG視頻標準那樣的實時視頻系統(tǒng)的熵編碼器部分的最好優(yōu)擇。圖26中作出了這樣一個系統(tǒng),其中,實時視頻系統(tǒng)包含有與被壓縮的圖象數(shù)據(jù)耦合的譯碼系統(tǒng)2601。系統(tǒng)2601對數(shù)據(jù)加以譯碼,將輸出送往有損譯碼器2602。有損譯碼器2602可以是-HDTV或MPEG譯碼器的轉換、彩色變換和HDTV或MPEG譯碼器的二次采樣部分。監(jiān)視器2603可以是一電視或視頻監(jiān)視器。盡管在閱讀了上述說明之后熟知本
技術領域:
的普通人員毫無疑問能對本發(fā)明可作出許多明顯改變的和修改,但應清楚的是這里所介紹和描述的特定的實施例決不是用來作為一種限制。因此,在優(yōu)選實施例中的詳細情況并不能作為權利要求范圍的限定,具有所提出的權利要求本身才是本發(fā)明的核心部分。權利要求1.對多個代碼字的數(shù)據(jù)流進行譯碼的方法,其特征是具有下列步驟將數(shù)據(jù)流的部分分派給多個譯碼設備;利用該多個譯碼設備對該數(shù)據(jù)流的部分進行譯碼,其中至少該多個譯碼設備中之一個在一流水線方式的連續(xù)周期內對其相應的數(shù)據(jù)流部分進行譯碼。2.權利要求1所述的方法,其特征是所述譯碼步驟包括有以流水線方式對數(shù)據(jù)流部分進行譯碼的步驟。3.權利要求1所述的方法,其特征是還進一步包括將數(shù)據(jù)流排列成一被排序的數(shù)據(jù)流。4.權利要求3所述的方法,其特征是所述分派步驟包括按照數(shù)據(jù)流的順序來分派這些部分。5.權利要求1所述的方法,其特征是其中多個譯碼設備包括許多QM編碼器。6.權利要求1所述的方法,其特征是所述多個譯碼設備包括許多有損譯碼器。7.權利要求1所述的方法,其特征是所述多個譯碼設備包括第一類型譯碼器和第二類型譯碼器,其中第一類型譯碼器與第二類型譯碼器不同。8.權利要求7所述的方法,其特征是所述第一類型譯碼器包含一行程編碼器,所述第二類型譯碼器包含一Q編碼器。9.權利要求7所述的方法,其特征是所述第一類型譯碼器包含一二進制譯碼器,所述第二類型譯碼器包含一非二進制譯碼器。10.權利要求7所述的方法,其特征是所述第一類型譯碼器包含一無損譯碼器,所述第二類型譯碼器包含一有損譯碼器。11.對多個代碼字的數(shù)據(jù)流進行譯碼的方法,其特征是包括下列步驟確定當前的結構槽;由存貯器檢索該結構槽的譯碼器狀態(tài);和對一代碼字進行處理,包括對所述一代碼字進行譯碼的步驟,其中確定、取數(shù)和處理的步驟在流水線方式中的連續(xù)周期中進行。12.權利要求11所述的方法,其特征在是還進一步包括有使數(shù)據(jù)流作向跟隨所述一代碼字之后的代碼字作移位的步驟。13.權利要求11的方法,其特征是所述取該譯碼器狀態(tài)的步驟包含有步驟取PEM狀態(tài);和取位發(fā)生器狀態(tài)。14.權利要求11所述的方法,其特征是所述處理步驟包含有步驟產生一畢特位;和對所述一代碼字進行譯碼,使得在進行所述一代碼字的譯碼之前產生該畢特位。15.權利要求14所述的方法,其特征是所述產生和譯碼步驟在相連續(xù)的周期內進行。16.權利要求11所述的方法,其特征是所述處理步驟包含有步驟對所述一代碼字進行譯碼,并使得在所述一代碼字的譯碼之先產生該畢特位;和產生一畢特位。17.權利要求11所述的方法,其特征是進一步包括對PEM狀態(tài)進行譯碼以確定為對所述多個代碼字之一進行譯碼所需的一代碼的步驟。18.權利要求11所述的方法,其特征是進一步包括更新PEM狀態(tài)以在所述多個代碼字之一已被譯碼后產生一被更新的PEM狀態(tài)的步驟。19.權利要求18所述的方法,其特征是所述更新和譯碼步驟在同一周期內進行。20.權利要求18所述的方法,其特征是還進一步包含將被更新的PEM狀態(tài)寫進存貯器的步驟。21.對多個代碼字的數(shù)據(jù)流進行譯碼的方法,其特征是包括有步驟確定針對所述多個代碼字之一的當前結構槽;取出針對該當前結構槽的概率估算機(PEM)的狀態(tài);取出針對當前結構槽的位發(fā)生器狀態(tài);產生表示正進行譯碼的所述多個代碼字之一的第一畢特位的畢特位;對PEM狀態(tài)進行譯碼以確定一針對所述多個代碼字之一的譯碼的一代碼;和利用該代碼對所述多個代碼字之一進行譯碼。22.權利要求21所述的方法,其特征是所述產生一畢特位和對所述多個代碼字之一進行譯碼的步驟在一流水線狀態(tài)中的相連續(xù)周期中進行。23.權利要求21所述的方法,其特征是所述確定,取數(shù)和產生步驟以一流水線方式在連續(xù)的周期中進行。24.權利要求23所述的方法,其特征是所述產生一畢特位和對PEM狀態(tài)譯碼的步驟在一流水線方式的相連續(xù)周期中進行。25.權利要求21所述的方法,其特征是還進一步包括對緊隨所述多個代碼字之一的后面的代碼字再利用所述當前結構槽的步驟,在此,免除了訪問外存貯器以獲得結構信息的需要。26.用于去壓縮具有多個代碼字的數(shù)據(jù)流的系統(tǒng),其特征是包括有用于接收數(shù)據(jù)流的多個代碼字的信道裝置;和用于與所述信道裝置相耦合以對多個代碼字中的每一個進行譯碼的譯碼器裝置,其中代碼字以流水線方式進行譯碼。27.權利要求26所述的系統(tǒng),其特征是其中數(shù)據(jù)流的至少兩個代碼字同時被加以譯碼,從而使數(shù)據(jù)流被并列進行譯碼。28.權利要求26所述的系統(tǒng),其特征是所述譯碼器裝置包括有多個譯碼器。29.用于對多個代碼字的數(shù)據(jù)流進行去壓縮的系統(tǒng),其特征是包括用于接收數(shù)據(jù)流的多個代碼字的信道控制裝置;多個連接來由該信道控制裝置接收多個代碼定的位流發(fā)生器,其中多個位流發(fā)生器中的每一個利用至少一個代碼來對每一代碼字進行譯碼,所述至少一代碼用于對固定長的代碼字進行譯碼,同時其中多個位流發(fā)生器的至少兩個同時對代碼字進行譯碼,從而使數(shù)據(jù)流被并列譯碼產生譯碼數(shù)據(jù);和模擬裝置,連接到多個位流發(fā)生器用于由多個位流發(fā)生器選擇譯碼數(shù)據(jù)以輸出該譯碼數(shù)據(jù)。30.權利要求29所述的系統(tǒng),其特征是所述至少一碼為一Tunstall碼。31.權利要求29所述的系統(tǒng),其特征是每一代碼字含有n畢特位,其中n為8的倍數(shù)。32.將多個代碼字的數(shù)據(jù)流加以去壓縮的方法,其特征是包括步驟接收數(shù)據(jù)流的多個代碼字;利用一Tunstall碼對每一代碼字進行譯碼,所述Tunstall碼用于對固定長度的代碼字進行譯碼,而且其中多個位流發(fā)生器的至少兩個同時對代碼字譯碼,以使得對數(shù)據(jù)流作并行譯碼來產生譯碼數(shù)據(jù);和由多個位流發(fā)生器選擇譯碼數(shù)據(jù)加以輸出。33.去壓縮多個代碼字的數(shù)據(jù)流的系統(tǒng),其特征是包括接收數(shù)據(jù)流的多個代碼字的信道控制裝置;多個被連接來由信道控制裝置接收多個代碼字的位流發(fā)生器,其中多個位流發(fā)生器中的每一個利用至少一個非二進制代碼來對每一代碼字譯碼,而且多個位流發(fā)生器的至少兩個同時對代碼字進行譯碼,以便對數(shù)據(jù)流作并行譯碼產生譯碼數(shù)據(jù);和模擬裝置,連接到多個位流發(fā)生器用于由此多個位流發(fā)生器選擇譯碼數(shù)據(jù)加以輸出。34.權利要求33所述的系統(tǒng),其特征是所述至少一代碼字包括一整個值。35.權利要求33的所述系統(tǒng),其特征是所述多個位流發(fā)生器利用多個非二進制編碼。36.去壓縮具有多個代碼字的數(shù)據(jù)流的系統(tǒng),其特征是包括有用于接收多個代碼字的信道裝置;與信道裝置相連的多個畢特位發(fā)生器,用于由信道裝置連續(xù)地接收多個代碼字并對之進行譯碼以產生被譯碼的數(shù)據(jù)流;和與多個畢特位發(fā)生器相連并對之進行控制的控制裝置,其中多個畢特位發(fā)生器的每一個由信道裝置接收一代碼字以進行譯碼,以使得至少在多個畢特位發(fā)生器中的兩個對連續(xù)的代碼字進行譯碼。37.權利要求36所述的系統(tǒng),其特征是所述多個位發(fā)生器的每一個對數(shù)據(jù)流中第n個代碼字譯碼,其中n為此多個位流發(fā)生器的數(shù)目。38.權利要求36所述的系統(tǒng),其特征是所述多個位發(fā)生器包括多個霍夫曼譯碼器。39.權利要求36所述的系統(tǒng),其特征是所述控制裝置包括一狀態(tài)機。40.權利要求36所述的系統(tǒng),其特征是所述多個位流發(fā)生器由多個霍夫曼譯碼器組成,所述信道裝置包括有一緩存器,其中所述控制裝置將數(shù)據(jù)順序提供給此多個霍夫曼譯碼器中的每一個,以使每一霍夫曼譯碼器接受第n個標記,n為霍夫曼譯碼器數(shù)。41.權利要求40所述的系統(tǒng),其特征是代碼字被傳送給多個霍夫曼譯碼器,對標記以與編碼期間的同樣順序進行譯碼。42.權利要求40所述的系統(tǒng),其特征是所述多個霍夫曼譯碼器按照JPEG標準進行譯碼,除開是以代碼字的交錯處理順序以外。43.權利要求40所述的系統(tǒng),其特征是所述多個霍夫曼譯碼器按照NPEG標準進行譯碼,除開是以代碼字的交錯處理順序以外。44.權利要求40所述的系統(tǒng),其特征是所述多個霍夫曼譯碼器的至少一個利用多個可行的霍夫曼編碼之一對數(shù)據(jù)進行譯碼,在此,多個可行的霍夫曼編碼的每一個根據(jù)當前值的概率來加以選擇。45.權利要求36所述的系統(tǒng),其特征是所述多個霍夫曼譯碼器的至少一個根據(jù)碼元的自適應概率為一特定碼元轉換相應的代碼字。46.權利要求40所述的系統(tǒng),其特征是所述控制裝置包括一狀態(tài)機。47.權利要求36所述的系統(tǒng),其特征是所述控制裝置包括一結構模型。48.權利要求36所述的系統(tǒng),其特征是還進一步包括有至少一個JPEMQM編碼器。49.權利要求40所述的系統(tǒng),其特征是還進一步包括一用于確定二元判定結果的QM編碼器,在此,所述多個霍夫曼譯碼器按該結果指定系數(shù)值。50.由多個代碼流組成一代碼流的方法,其中多個代碼流的每一個均包括有多個代碼字,所述方法包括步驟將多個代碼流的每一個中的代碼字裝配成固定長的字;按照該固定長字中代碼字的被分派的序列將多個代碼流中的代碼字進行交錯排列,以使得組成代碼流包括多個代碼流中的代碼字。51.權利要求50所述的方法,其特征是所述交錯排列步驟包括按照最接近組成代碼流的起始的代碼字作交錯處理。52.權利要求50所述的方法,其特征是進一步包括有按照模擬順序分派多個代碼流中的代碼字。53.權利要求50所述的方法,其特征是所述多個代碼流的一個包括音頻數(shù)據(jù)而另一所述多個代碼流包括視頻數(shù)據(jù),從而使組合數(shù)據(jù)流包括有交錯排列的聲頻數(shù)據(jù)和視頻數(shù)據(jù)。54.對具有多個代碼字的代碼流進行譯碼的系統(tǒng),其特征是包括有一由代碼流提供代碼字的緩存器;一提供結構的結構模型;一連接到結構模型用于存放狀態(tài)信息的存貯器,此存貯器按照結構模型提供的每一結構給出狀態(tài)信息;和多個連接到緩存器和該存貯器的多個譯碼器,用于利用由存貯器得到的狀態(tài)信息對緩存器所給出的代碼字進行譯碼,其中此多個譯碼器的兩個對代碼字作并行譯碼,以使得此多個譯碼器對數(shù)據(jù)流進行譯碼。55.權利要求54所述的系統(tǒng),其特征是所述存貯器與所述多個譯碼器及所述結構模型一齊被置于一集成電路上。56.權利要求54所述的系統(tǒng),其特征是所述存貯器為片載存貯器,用于存放公用結構的信息。57.權利要求54所述的系統(tǒng),其特征是所述存貯器為片載存貯器,存放較大運行計數(shù)的最低有效位部分,并在運行的末尾訪問外存貯器。58.權利要求54所述的系統(tǒng),其特征是所述存貯器為片載存貯器,存放位發(fā)生器一部分的狀態(tài)信息,并對其余狀態(tài)信息采用外存貯器。59.權利要求54所述的系統(tǒng),其特征是所述存貯器包括至少兩個存貯器分區(qū),其中所述兩個存貯器分區(qū)為分開的結構槽組存放狀態(tài)信息,而且其中所述至少兩個存貯器分區(qū)以交替的周期進行訪問。60.對多個代碼字的圖象數(shù)據(jù)流進行JPEG去壓縮的方法,其特征是包括步驟將數(shù)據(jù)流的部分分派給多個譯碼設備;利用此多個譯碼設備對數(shù)據(jù)流這些部分進行譯碼,其中該多個譯碼設備的至少兩個包括R編碼器。61.權利要求60所述的方法,其特征是所述譯碼步驟包括利用無損二元熵編碼器對該數(shù)據(jù)流的部分進行譯碼。62.對數(shù)據(jù)流進行編碼的方法,其特征是包括步驟以有限量的緩沖存貯器進行編碼;和在一編碼器和一譯碼器間作信號傳輸來指出已到達一存貯器極限。63.權利要求62所述的方法,其特征是所述編碼器響應指出已到達存貯器極限的所述信號產生一輸出。64.權利要求62所述的方法,其特征是作信號傳輸?shù)牟襟E包括加入后面未跟隨有一最小或然碼元的最大或然碼元的非最大行程。65.權利要求62所述的方法,其特征是所述信號傳輸步驟包括有步驟將數(shù)據(jù)流中的代碼字作時間標記;在作時間標記后緩存代碼字;和在達到存貯器極限時以最低時間標記完成代碼字。66.權利要求62所述的方法,其特征是所述信號傳輸步驟包括有利用分隔的結構槽將存貯器的狀態(tài)送給譯碼器的步驟,其中結構槽被對每一代碼字加以譯碼以指明該代碼字是否取決于緩存溢出。67.一編碼器,其特征是包括一用于接收多個代碼字的數(shù)據(jù)流的序列器;連接到該序列器用于對多個代碼字進行編碼的編碼器;連接到此多個編碼器、或對該編碼的代碼字加以緩存的緩存裝置;用于由該緩存裝置求取被編碼數(shù)據(jù)以產生交錯排列的譯碼數(shù)據(jù)的輸出數(shù)據(jù)流的交錯處理機構;和與該交錯處理機構相連的對編碼數(shù)據(jù)時的順序進行模擬的譯碼器,其中此譯碼器以流水線方式運行。68.權利要求67所述的編碼器,其特征是還包括有指出該緩存裝置發(fā)生溢出的裝置。69.權利要求68所述的編碼器,其特征是所述指示裝置包括至少一個予定的代碼字。70.一編碼器,其特征是包括一接收多個代碼字的數(shù)據(jù)流的序列器;與該序列器相連、對多個代碼字進行編碼的多個編碼器;連接到此多個編碼器、或對被編碼代碼字進行緩存的緩存裝置;由緩存裝置求取被編碼數(shù)據(jù)以產生交錯排列的編碼數(shù)據(jù)的輸出數(shù)據(jù)流的交錯處理機構,其中交錯處理機構包括有輸出在緩存裝置的存貯器到達其極限時未被完全編碼的數(shù)據(jù)的裝置。71.權利要求70所述的編碼器,其特征是還包括有加入未跟隨最小或然碼元的最大或然碼元的非最大行程的裝置。72.權利要求70所述的編碼器,其特征是還包括有對數(shù)據(jù)流中代碼字作時間標記的裝置;連接到時間標記裝置對經過加以時間標記后的代碼字進行緩存的裝置;和在存貯器達到其極限時以最低時間標記完成代碼字的裝置。73.對多個代碼字的數(shù)據(jù)流進行去壓縮的實時視頻系統(tǒng),其特征是包括接收該數(shù)據(jù)流以對數(shù)據(jù)流中每一代碼字進行譯碼的第一多個譯碼設備,在此,數(shù)據(jù)流以流水線方式進行譯碼;對被碼數(shù)據(jù)流給定格式以為將該被譯碼數(shù)據(jù)流加以顯示作準備的格式化裝置;和顯示被譯碼數(shù)據(jù)的顯示裝置。74.權利要求73所述的系統(tǒng),其特征是所述顯示裝置為一電視監(jiān)視器。75.權利要求73所述的系統(tǒng),其特征是所述顯示裝置為一視頻監(jiān)視器。76.權利要求73所述的系統(tǒng),其特征是第二譯碼器裝置為一有損譯碼器。77.權利要求76所述的系統(tǒng),其特征是所述有損譯碼器包括一譯碼器的變換部分。78.權利要求76所述的系統(tǒng),其特征是所述有損譯碼器包括一種譯碼器的彩色變換部分。79.權利要求76所述的系統(tǒng),其特征是所述有損譯碼器包括一譯碼器的二次采樣部分。全文摘要本發(fā)明提出了一種并行數(shù)據(jù)編碼和譯碼的方法和裝置。本發(fā)明提出對具有多個代碼字的數(shù)據(jù)流進行去壓縮(decopmpressing)的系統(tǒng)。此系統(tǒng)包括有一接收數(shù)據(jù)流的輸入信道。此系統(tǒng)還包括有一對數(shù)據(jù)流的每一畢特位進行譯碼的譯碼器,其中,數(shù)據(jù)流中至少兩個代碼字被同時加以譯碼,從而使數(shù)據(jù)流被并列譯碼。文檔編號H03M7/40GK1124889SQ9412045公開日1996年6月19日申請日期1994年12月22日優(yōu)先權日1993年12月23日發(fā)明者J·D·阿倫,M·波力克,M·戈米什,E·L·許瓦茨申請人:株式會社理光