專利名稱:用于在每個(gè)時(shí)鐘周期對(duì)兩個(gè)代碼進(jìn)行解碼的可變長(zhǎng)解碼器及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一個(gè)可變長(zhǎng)解碼器(VLD),尤其一個(gè)用于可變長(zhǎng)代碼的解碼器,它適用于對(duì)壓縮圖像數(shù)據(jù)進(jìn)行解碼。
最近,在圖像數(shù)據(jù)壓縮技術(shù)方面已經(jīng)取得了長(zhǎng)足的進(jìn)步。這些技術(shù)的目的是提高諸如數(shù)字傳輸和記錄的效率,方法是以低于非編碼圖像數(shù)據(jù)的比特速率對(duì)圖像數(shù)據(jù)進(jìn)行編碼。為達(dá)到這些編碼效率而采用的典型技術(shù)是預(yù)測(cè)編碼和變換編碼。
另外,通過(guò)對(duì)已壓縮代碼進(jìn)行可變長(zhǎng)編碼能夠得到進(jìn)一步的圖像數(shù)據(jù)壓縮??勺冮L(zhǎng)編碼包括根據(jù)待編碼值出現(xiàn)的頻率改變編碼的比特寬度。典型的情況是,以較高頻率出現(xiàn)的值相對(duì)比較低頻率出現(xiàn)的值而言被賦予更短的代碼。因此,同定長(zhǎng)編碼相比能取得更小的比特速率??勺冮L(zhǎng)代碼的一個(gè)例子是霍夫曼代碼。
可變長(zhǎng)代碼字(VLC)通??赏ㄟ^(guò)使用查尋表(LUT)來(lái)解碼。一個(gè)n位的并行數(shù)據(jù)信號(hào)與查尋表相關(guān)聯(lián)。這個(gè)n位信號(hào)包含一個(gè)可變長(zhǎng)代碼字(長(zhǎng)度可能是n位),它用于對(duì)存儲(chǔ)在查尋表中的數(shù)據(jù)進(jìn)行尋址。存儲(chǔ)在查尋表中的數(shù)據(jù)與代碼長(zhǎng)度和代碼值對(duì)應(yīng)。代碼長(zhǎng)度指定了在n位信號(hào)中標(biāo)識(shí)的可變長(zhǎng)代碼字的長(zhǎng)度。代碼值是可變長(zhǎng)代碼的解碼(即定長(zhǎng))值。查尋表的輸出是代碼長(zhǎng)度和代碼值。
在美國(guó)推出了一種標(biāo)準(zhǔn),用于對(duì)高清晰度電視信號(hào)進(jìn)行數(shù)字化編碼。該標(biāo)準(zhǔn)在本質(zhì)上與MPEG-2標(biāo)準(zhǔn)相同,它是由國(guó)際標(biāo)準(zhǔn)化組織(ISO)的動(dòng)態(tài)圖畫(huà)專家組(MPEG)提出的。該標(biāo)準(zhǔn)在本文中被稱作
“MPEG標(biāo)準(zhǔn)”,一篇草案內(nèi)部標(biāo)準(zhǔn)(DIS)出版刊物對(duì)它進(jìn)行了描述。該刊物的名稱是《信息技術(shù)——?jiǎng)討B(tài)圖畫(huà)及相關(guān)音頻的通用編碼,推薦H.262 ISO/IEC 13818-21995(E)》(Information Technology-GenericCoding of Moving Pictures and Associated Audio,Recommendation H.262ISO/IEC 13818-21995(E)),可以從ISO得到該文,在此我們將其結(jié)合于此來(lái)講述MPEG-2數(shù)字化視頻編碼標(biāo)準(zhǔn)。
就MPEG標(biāo)準(zhǔn)如何使用可變長(zhǎng)編碼為例而言,考慮代碼表B-14和B-15,它們定義在MPEG-2標(biāo)準(zhǔn)的附錄B中。在這個(gè)代碼表中,待解碼的可變長(zhǎng)代碼字的最大長(zhǎng)度為17位。每個(gè)代碼都與不同組合的“運(yùn)行”(”run”)和“水平”(“l(fā)evel)值相對(duì)應(yīng),運(yùn)行值是在掃描次序中先于非零系數(shù)的零系數(shù)的數(shù)目,而水平值是非零系數(shù)的絕對(duì)值。
MPEG-2高清晰度電視(HDTV)視頻解碼器需要非常高的解碼速率。盡管壓縮位流中有很多場(chǎng)經(jīng)過(guò)了可變長(zhǎng)編碼,但是還約有85%的位流包括離散余弦變換(DCT)系數(shù)解碼。高清晰度電視位流需要解碼在每秒100兆可變長(zhǎng)代碼的數(shù)量級(jí)進(jìn)行,一次解一個(gè)代碼將需要一個(gè)100MHz的時(shí)鐘。這已超出了現(xiàn)有高清晰度ASIC的實(shí)用極限。另一方式則是在每個(gè)時(shí)鐘周期對(duì)多個(gè)代碼進(jìn)行解碼。
一種對(duì)多個(gè)代碼進(jìn)行解碼的方法是使用兩個(gè)隨機(jī)運(yùn)行的VLD。此方法的不足在于因?yàn)閿?shù)據(jù)是切片格式的,而且每個(gè)切片的長(zhǎng)度在解碼之前都是未知的,所以必須在不同的切片上運(yùn)行兩個(gè)并行路徑,這就需要對(duì)內(nèi)存進(jìn)行預(yù)處理以分離每個(gè)其他的切片。
由Ozaki擁有的美國(guó)專利5,428,356號(hào)被結(jié)合于此作為對(duì)VLD的教導(dǎo),該專利使用預(yù)定的、經(jīng)優(yōu)先序排列的解碼方法。Ozaki的VLD包括一個(gè)第一解碼器電路,用于對(duì)一個(gè)霍夫曼代碼串中的前導(dǎo)霍夫曼代碼進(jìn)行解碼;一個(gè)第二解碼器電路,用于對(duì)從霍夫曼代碼串前導(dǎo)部分由兩個(gè)預(yù)定霍夫曼代碼組成的一個(gè)連續(xù)串進(jìn)行解碼。第一解碼器使用了一個(gè)如上文所述的查尋表(LUT)。第二解碼器使用了一個(gè)查尋表,其中,每個(gè)固定數(shù)目的的預(yù)定代碼字對(duì)被用于對(duì)存儲(chǔ)在查尋表中的數(shù)據(jù)進(jìn)行尋址。存儲(chǔ)在查尋表中的數(shù)據(jù)與代碼長(zhǎng)度和代碼值對(duì)序列相對(duì)應(yīng)。當(dāng)在輸入流中遇到一個(gè)預(yù)定代碼字對(duì)時(shí),相應(yīng)的代碼長(zhǎng)度對(duì)和代碼值對(duì)就由第二解碼器輸出。當(dāng)?shù)诙獯a器輸出兩個(gè)解碼值時(shí),一個(gè)選擇器就選擇第二解碼器的輸出;當(dāng)?shù)诙獯a器不能產(chǎn)生兩個(gè)解碼值時(shí),選擇器就選擇第一解碼器的輸出。
Ozaki專利的VLD的局限在于第二解碼器只能對(duì)有限數(shù)目的預(yù)定雙串組合進(jìn)行解碼。尤其是,第二解碼器只能對(duì)具有總長(zhǎng)較短的選定代碼對(duì)進(jìn)行解碼。如果遇到更長(zhǎng)長(zhǎng)度的代碼串時(shí),就需要多個(gè)時(shí)鐘周期。因?yàn)橥ǔ_x定霍夫曼代碼是為了使低頻代碼具有較長(zhǎng)的長(zhǎng)度,而Ozaki的第二解碼器通常不會(huì)去對(duì)包含低頻代碼的代碼對(duì)進(jìn)行解碼,于是要消耗更多的時(shí)鐘周期。
另外,Ozaki的VLD需要大量的內(nèi)存,因?yàn)橐粋€(gè)n位地址必須作為輸入提供給查尋表。此外,查尋表中的每個(gè)內(nèi)存地址都存有一個(gè)z位的代碼長(zhǎng)度和一個(gè)v位的代碼值。于是,總共需要z+v位來(lái)存儲(chǔ)代碼長(zhǎng)度和代碼值。查尋表一所需的總位數(shù)是2n*(z+v)。
相應(yīng)地,有人推薦限制轉(zhuǎn)換表的大小以降低轉(zhuǎn)換表所需的內(nèi)存量。但是,這些技術(shù)導(dǎo)致了較慢的解碼過(guò)程。
本發(fā)明是一種用于在單個(gè)時(shí)鐘周期內(nèi)確定數(shù)據(jù)流中包括的多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的長(zhǎng)度的裝置和方法。
該裝置中包含一個(gè)用于接收數(shù)據(jù)流的移位器。該移位器響應(yīng)一個(gè)移位控制信號(hào)來(lái)傳遞多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的子集。
一個(gè)第一長(zhǎng)度解碼裝置被耦合以接收該多個(gè)編碼數(shù)據(jù)值的子集。該第一長(zhǎng)度解碼裝置進(jìn)行第一解碼操作,以確定子集中的第一編碼數(shù)據(jù)值的長(zhǎng)度。
一個(gè)第二長(zhǎng)度解碼裝置被耦合以接收該多個(gè)編碼數(shù)據(jù)值子集。第二長(zhǎng)度解碼裝置進(jìn)行第二解碼操作,以單獨(dú)確定子集中第二個(gè)編碼數(shù)據(jù)值的長(zhǎng)度。在子集中,第二編碼數(shù)據(jù)值緊跟著第一編碼數(shù)據(jù)值。第一、第二解碼的操作同時(shí)進(jìn)行。
一個(gè)合成長(zhǎng)度解碼器響應(yīng)第一和第二編碼數(shù)據(jù)值的長(zhǎng)度,從而輸出第一和第二數(shù)據(jù)值的合成長(zhǎng)度。
一個(gè)移位控制器響應(yīng)第一和第二數(shù)據(jù)值的合成長(zhǎng)度形成移位控制信號(hào)。該移位控制信號(hào)可識(shí)別移位器中下一個(gè)編碼數(shù)據(jù)值的位置。下一個(gè)編碼數(shù)據(jù)值緊跟著第二編碼數(shù)據(jù)值。移位控制器將移位控制信號(hào)傳送給移位器。
圖1是可變長(zhǎng)解碼器-系數(shù)解碼器的示例方框圖。
圖2是顯示圖1所示的可變長(zhǎng)解碼器的VLD長(zhǎng)度解碼電路的框圖。
圖3是一個(gè)顯示圖2中的控制邏輯部分的方框圖。
圖4是一個(gè)顯示圖1所示的運(yùn)行值/水平值解碼器的方框圖。
圖5是顯示可用于圖1所示可變長(zhǎng)解碼器的第二示例VLD長(zhǎng)度解碼電路的框圖。
概要圖1是一個(gè)用于本發(fā)明的可變長(zhǎng)解碼器(VLD)系數(shù)解碼器100的示例框圖。本發(fā)明是一種改進(jìn)的可變長(zhǎng)解碼器(VLD)長(zhǎng)度解碼電路110,它能夠在單個(gè)時(shí)鐘周期內(nèi)對(duì)任何兩個(gè)連續(xù)編碼數(shù)據(jù)值的組合進(jìn)行解碼。在圖1的例子中,本發(fā)明被用于對(duì)DCT系數(shù)(占編碼數(shù)據(jù)流的85%左右)的長(zhǎng)度進(jìn)行解碼。本技術(shù)領(lǐng)域內(nèi)的一般技術(shù)人員都明白,本發(fā)明也可用于對(duì)其他可變長(zhǎng)編碼數(shù)據(jù)值(例如高級(jí)語(yǔ)法或其他可變長(zhǎng)編碼值)進(jìn)行解碼。
圖2是圖1所示VLD長(zhǎng)度解碼電路110的方框圖。該示例的長(zhǎng)度解碼電路裝置110包括移位器206,用于將可變長(zhǎng)編碼數(shù)據(jù)值傳送給第一長(zhǎng)度解碼器210。第一長(zhǎng)度解碼器210執(zhí)行第一解碼操作以確定第一個(gè)編碼數(shù)據(jù)值的長(zhǎng)度211。
一個(gè)第二長(zhǎng)度解碼器212被耦合用以從移位多路轉(zhuǎn)接器206接收編碼數(shù)據(jù)值,以進(jìn)行第二解碼操作,從而單獨(dú)地確定第二編碼數(shù)據(jù)值的長(zhǎng)度。第二編碼數(shù)據(jù)值緊跟著第一編碼數(shù)據(jù)值。第一和第二解碼操作同時(shí)進(jìn)行。第二長(zhǎng)度解碼器212包括多個(gè)解碼器212a-212p,每個(gè)解碼器對(duì)應(yīng)第一編碼數(shù)據(jù)值的每個(gè)可能的長(zhǎng)度。212a-212p中的每個(gè)解碼器都同時(shí)確定第二編碼數(shù)據(jù)值的長(zhǎng)度213a-213p,每一個(gè)都分別假設(shè)第一編碼數(shù)據(jù)值的一個(gè)不同的長(zhǎng)度。然后,合成長(zhǎng)度解碼器214使用第一數(shù)據(jù)值的實(shí)際解碼長(zhǎng)度211,選擇由解碼器212a-212p輸出的解碼長(zhǎng)度213a-213p之一,并輸出一個(gè)合成長(zhǎng)度信號(hào)L3。
一個(gè)移位控制器包括塊218、222、234、和236,它被耦合以從合成長(zhǎng)度解碼器214接收合成長(zhǎng)度,以形成移位控制信號(hào)235,它用于確定將哪個(gè)編碼數(shù)據(jù)值傳遞給第一和第二長(zhǎng)度解碼裝置。移位控制信號(hào)235被傳遞給移位器206。
關(guān)于VLD長(zhǎng)度解碼器電路110在下文有詳述,請(qǐng)參考圖2。
詳細(xì)描述這里假設(shè)讀者對(duì)下文——《信息技術(shù)——?jiǎng)討B(tài)圖畫(huà)及相關(guān)音頻的通用編碼,推薦H.262 ISO/IEC 13818-21995(E)》(Information Technology-Generic Coding of Moving Pictures and Associated Audio InformationVideo,Recommendation H.262 ISO/IEC 13818-21995(E))[以下簡(jiǎn)稱“MPEG標(biāo)準(zhǔn)”]了解,以后不再重復(fù)。
再參照?qǐng)D1,一個(gè)VLD長(zhǎng)度解碼電路110接收48位壓縮輸入數(shù)據(jù)流DATA IN111,它包含了經(jīng)編碼的數(shù)據(jù)。其余提供給VLD長(zhǎng)度解碼電路110的輸入信號(hào)(MACROBLOCK INTRA,LUMA/CHROMA,INTRA_VLC_FORMAT,TEST_MODE,HOLD,RESTART,以及EXTERNAL_MUX_POSITION)在下文將參照?qǐng)D3作更詳細(xì)的描述。標(biāo)識(shí)位MACROBLOCK_INTRA定義在MPEG標(biāo)準(zhǔn)的段落6.3.17.1和表B-2至B-8中;標(biāo)識(shí)位LUMA/CHROMA表明接收的塊是亮度塊還是色度塊;INTRA_VLC_FORMAT在圖畫(huà)編碼擴(kuò)展及在MPEG-2標(biāo)準(zhǔn)的段落6.2.3.1中被定義。
VLD長(zhǎng)度解碼電路110在每個(gè)時(shí)鐘周期確定兩個(gè)連續(xù)編碼數(shù)據(jù)值的長(zhǎng)度。第一編碼數(shù)據(jù)值的長(zhǎng)度由L1表示,第一和第二編碼數(shù)據(jù)值的合成長(zhǎng)度由L3來(lái)表示。一個(gè)具有輸入數(shù)據(jù)111和經(jīng)解碼的長(zhǎng)度值L1和L3的子集112被傳遞給VLD運(yùn)行值/水平值解碼決20、VLD內(nèi)部(intra)DC系數(shù)解碼器130、以及輸出控制塊140。
VLD長(zhǎng)度解碼電路110為VLD運(yùn)行值/水平值解碼功能120提供B14和B15信號(hào),并識(shí)別在運(yùn)行值/水平值解碼過(guò)程中應(yīng)使用哪個(gè)查尋表。B14信號(hào)表明應(yīng)使用DCT系數(shù)表零查尋表(由MPEG標(biāo)準(zhǔn)、附錄B、表B-14定義)。B15信號(hào)表明應(yīng)使用DCT系數(shù)表一信息(由MPEG標(biāo)準(zhǔn)、附錄B、表B-15定義)。后幾種表以后將分別被稱作“表B-14”和“表B-15”。表B-14和B-15中為每種VLC規(guī)定了運(yùn)行值和水平值,除了其運(yùn)行值和水平值由表B-16規(guī)定的逃逸編碼值。
當(dāng)一個(gè)系數(shù)(由表B-14或B-15識(shí)別)的解碼值是“塊尾”順序,那么塊內(nèi)就沒(méi)有更多的系數(shù)。VLD長(zhǎng)度解碼電路110檢測(cè)到塊尾順序并為輸出控制功能140提供信號(hào)END_OF_BLOCK。
VLD運(yùn)行值/水平值解碼塊120接收輸入數(shù)據(jù)、長(zhǎng)度L1和L3、表B14和B15。VLD運(yùn)行值/水平值解碼塊120利用該信息來(lái)確定解碼值。對(duì)于DCT系數(shù)(而非DC內(nèi)系數(shù)),VLD運(yùn)行值/水平值解碼塊120在輸入數(shù)據(jù)中為兩個(gè)VLC都確定運(yùn)行值和水平值(定義在MPEG標(biāo)準(zhǔn)、段落3.79和3.119中)。這些值被分別標(biāo)記成RUN_1、LEVEL_1、RUN_2、和LEVEL_2。解碼值的確定基于表B14或B15,根據(jù)MPEG標(biāo)準(zhǔn)的表7-3它們可用于任何給定的待測(cè)塊。
很多運(yùn)行值和水平值的可能組合沒(méi)有可變長(zhǎng)代碼(VLC)來(lái)代表它們。為了對(duì)這些罕見(jiàn)的組合進(jìn)行編碼,采用了一種名叫逃逸編碼(EscapeCoding)的方法,它規(guī)定在MPEG標(biāo)準(zhǔn)、段落7.2.2.3中。根據(jù)這種方法,一個(gè)逃逸VLC后面要跟著一個(gè)與運(yùn)行值對(duì)應(yīng)的6位定長(zhǎng)代碼,而該碼后面又跟著一個(gè)12位定長(zhǎng)代碼,它給出了符號(hào)級(jí)(signed level)的值。如果編碼數(shù)據(jù)值包含了“逃逸代碼”,那么VLD運(yùn)行值/水平值解碼塊120會(huì)提供在MPEG標(biāo)準(zhǔn)、附錄B、表B-16中定義的運(yùn)行和水平值。逃逸代碼的檢測(cè)由圖1中的信號(hào)ESC_1和ESC_2來(lái)指示,而解碼值由變量RUN_1_ESC、LEVEL_1_ESC、RUN_2_ESC、LEVEL_2_ESC給出。注意逃逸代碼仍然是一個(gè)VLC,一個(gè)逃逸代碼出現(xiàn)在每個(gè)B14和B15的查尋表中;盡管逃逸編碼值的運(yùn)行及水平值具有定長(zhǎng),但在運(yùn)行值和水平值之前的逃逸代碼仍是一個(gè)VLC。
在示例的系數(shù)解碼器中,由一個(gè)分離的VLD內(nèi)部DC系數(shù)解碼功能130對(duì)一個(gè)內(nèi)部編碼塊(即DC系數(shù),其頻率在兩維都是零)的VLC進(jìn)行解碼。當(dāng)塊中第一個(gè)VLC被VLC長(zhǎng)度解碼電路110接收到時(shí),輸出信號(hào)COEF_1被置位。當(dāng)COEF_1和MACROBLOCK_INTRA都被置位時(shí),解碼功能130被激活。VLD內(nèi)部DC系數(shù)解碼功能130利用選定的數(shù)據(jù)和第一編碼數(shù)據(jù)值的長(zhǎng)度(由長(zhǎng)度解碼電路110提供)對(duì)DC系數(shù)進(jìn)行解碼。由VLD內(nèi)部DC系數(shù)解碼功能130解碼的值dct_dc_size被規(guī)定于MPEG標(biāo)準(zhǔn)、附錄B、表B-12和表B-13中。如果該塊是亮度塊,使用表B-12中的值dct_dc_size;如果該塊是色度塊,使用表B-13中的值dct_dc_size。
如果dct-dc_size的解碼值非零,那么VLC后面將跟有一個(gè)定長(zhǎng)代碼——dc_dct_differential。dc_dct_differential的長(zhǎng)度為dc_dct_size位。一個(gè)微分值被首先從編碼數(shù)據(jù)中恢復(fù)回來(lái)。該微分值與一個(gè)預(yù)測(cè)算子相加,以恢復(fù)最終解碼系數(shù)。本技術(shù)領(lǐng)域內(nèi)的一般技術(shù)人員可以輕易地組建一個(gè)內(nèi)部DC系數(shù)解碼功能130。
一個(gè)輸出控制器140從VLD長(zhǎng)度解碼電路110接收兩個(gè)合成長(zhǎng)度位L3(113)以及信號(hào)END_OF_BLOCK和ERROR。輸出控制器140也接收信號(hào)INTRA_VLC_FORMAT。輸出控制器140生成兩個(gè)信號(hào)ENABLE_1和ENABLE_2,它們用于指示什么時(shí)候信號(hào)RUN和LEVEL包含有效信息。輸出控制器140在塊頭將ENABLE_1和ENABLE_2置位,并在塊尾將ENABLE_1和ENABLE_2重新置位。取決于哪個(gè)表(B14或B15)在使用中(由INTRA_VLC_FORMAT指示)、以及當(dāng)END_OF_BLOCK發(fā)生時(shí)L3(0)或L3(2)是否置位,輸出控制器140決定塊的最后代碼到底是RUN_1/LEVEL_1還是RUN_2/LEVEL_2。如果檢測(cè)到錯(cuò)誤(信號(hào)ERROR被設(shè)置成邏輯高位),那么ENABLE_1和ENABLE_2將被重新置位。
來(lái)自VLD運(yùn)行值/水平值解碼塊120和內(nèi)部DC系數(shù)解碼功能130的輸出信號(hào)被提供給一個(gè)輸出多路轉(zhuǎn)接器150。輸出多路轉(zhuǎn)接器150使用信號(hào)ESC_1來(lái)選擇值RUN_1和值LEVEL_1(121和122),或者是值RUN_1_ESC和值LEVEL_1_ESC(123和124)。類似地,輸出多路轉(zhuǎn)接器150使用信號(hào)ESC_2來(lái)選擇值RUN_2和值LEVEL_2(125和126),或者是值RUN_2_ESC和值LEVEL_2_ESC(127和128)。被選定的值就作為RUN_1值151、LEVEL_1值152、RUN_2值153、LEVEL_2值154輸出。同樣地,如果是內(nèi)部編碼塊的第一系數(shù)(即DC系數(shù)),信號(hào)FC_FLAG和MACROBLOCK_INTRA將選擇DC_LEVEL。輸出多路轉(zhuǎn)接器150將DC系數(shù)傳送到RUN_1/LEVEL_1通道上。
圖2是一個(gè)方框圖,用于示例VLD長(zhǎng)度解碼電路110。
一個(gè)移位裝置用于接收數(shù)據(jù)流DATA_IN。在示例中,移位裝置包括一個(gè)移位多路轉(zhuǎn)接器206和兩個(gè)寄存器202和204。移位多路轉(zhuǎn)接器206響應(yīng)移位控制信號(hào)235,為長(zhǎng)度解碼傳送多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的子集。
每個(gè)寄存器202和204的大小要能存儲(chǔ)兩個(gè)最大可能長(zhǎng)度的VLC。在示例的實(shí)施例中,最長(zhǎng)的VLC為24位,因此每個(gè)寄存器能容納48位。移位多路轉(zhuǎn)接器206能容納多達(dá)寄存器202和204總和的位數(shù)(少1)。示例的寄存器202接收48位新數(shù)據(jù),再將接收到的數(shù)據(jù)輸出到寄存器204和移位多路轉(zhuǎn)接器206。于是,寄存器204總比寄存器202落后一個(gè)周期。當(dāng)寄存器202和204中的內(nèi)容被傳遞給寄存器206,寄存器202中的內(nèi)容被下移給寄存器204,一個(gè)新的48位數(shù)據(jù)被傳遞給寄存器202,然后兩者都被傳遞給移位多路轉(zhuǎn)接器206。結(jié)果是每當(dāng)寄存器202和204被激活移進(jìn)一個(gè)新的48位字時(shí),它們將進(jìn)行一次移位多路轉(zhuǎn)接器206中內(nèi)容的48位下移。這發(fā)生在以下情況下當(dāng)前存儲(chǔ)在移位多路轉(zhuǎn)接器206的95位內(nèi)容中有48位或48位以上已經(jīng)被傳遞給長(zhǎng)度解碼功能208(傳遞一個(gè)“大于48”的信號(hào)238,以激活寄存器202和204,下文有論述)。示例的移位多路轉(zhuǎn)接器206將自身內(nèi)容的一個(gè)48位子集傳送給雙重長(zhǎng)度解碼功能208。
長(zhǎng)度解碼器功能208既包括第一又包括第二代碼長(zhǎng)度解碼裝置。在實(shí)施例中,第一長(zhǎng)度解碼裝置是一個(gè)傳統(tǒng)的解碼電路210,它被耦合以便從移位多路轉(zhuǎn)接器206接收多個(gè)解碼數(shù)據(jù)值的子集。解碼器210進(jìn)行一次第一解碼操作,以確定子集中第一編碼數(shù)據(jù)值的長(zhǎng)度。
由于系數(shù)在表B-14和B-15中編碼方式的緣故,只需最多12位(最少要1位)就能確定VLC的長(zhǎng)度,哪怕是對(duì)于一個(gè)24位的代碼。因此,如果遇到以下情況(即第一代碼是24位代碼,第二代碼是17位代碼),就必須處理36位來(lái)確定二者的長(zhǎng)度。在這種情況下,前6位識(shí)別第一代碼的長(zhǎng)度,第25至第36位識(shí)別二代碼的長(zhǎng)度。在實(shí)施例中,寄存器被加載以便代碼從LSB解碼為MSB;每個(gè)VLC中(最多)需要12個(gè)LSB來(lái)識(shí)別VLC的長(zhǎng)度。
解碼器電路210可能包括一個(gè)只讀存儲(chǔ)器(ROM)、一個(gè)可編程邏輯陣列(PLA)、以及一個(gè)邏輯門或類似部件(未標(biāo)出)。在形成第一編碼值的輸入串的m位中,前n位(n<m,n和m都是整數(shù))被用于確定代碼的長(zhǎng)度。例如,如果m等于24,n等于12,那么前12位用來(lái)指示代碼的長(zhǎng)度,而剩余位數(shù)用來(lái)定義代碼和符號(hào)。
解碼器210既能對(duì)DC系數(shù)的長(zhǎng)度,也能對(duì)AC系數(shù)的長(zhǎng)度進(jìn)行解碼。對(duì)DC系數(shù)長(zhǎng)度進(jìn)行解碼用的是B12(亮度)或B13(色度)查尋表,而對(duì)AC系數(shù)進(jìn)行解碼用的是B14查尋表(非內(nèi)編碼塊,以及intra_vlc_format為0的內(nèi)編碼塊)或B15查尋表(intra_vlc_format為1的內(nèi)編碼塊)。因此解碼器210需要從控制邏輯216獲取信號(hào)B12、B13、B14、B15、B14-B15、和COEFF_1,以確定使用哪個(gè)查尋表來(lái)對(duì)當(dāng)前任意系數(shù)進(jìn)行解碼。這些信號(hào)對(duì)解碼器210進(jìn)行配置,以使用合適的查尋表。
解碼器電路210存儲(chǔ)的代碼與用來(lái)確定長(zhǎng)度的n位相對(duì)應(yīng)。當(dāng)編碼數(shù)據(jù)值子集的第一部分(最多n位)與解碼器電路210中的代碼一致時(shí),解碼器210輸出一個(gè)擊中信號(hào)211,來(lái)識(shí)別第一編碼值的長(zhǎng)度。
第一長(zhǎng)度解碼器210為第一編碼數(shù)據(jù)值的每種可能的長(zhǎng)度都輸出一個(gè)相應(yīng)的位。長(zhǎng)度解碼器210的單個(gè)位輸出被置于值1。被置位的位與第一編碼數(shù)據(jù)值的長(zhǎng)度相對(duì)應(yīng),而后者由第一長(zhǎng)度解碼器210所確定。二十位信號(hào)211被作為圖2中的信號(hào)L1從VLD長(zhǎng)度解碼電路110輸出。
在實(shí)施例中,第一可變長(zhǎng)代碼可能具有20個(gè)不同的長(zhǎng)度值,分別與值2到20或值24相對(duì)應(yīng)。這些可能的長(zhǎng)度由MPEG標(biāo)準(zhǔn)的表B12-B15確定。長(zhǎng)度信號(hào)211是一個(gè)20位信號(hào),每一位都分別與編碼值的20種可能的編碼值長(zhǎng)度之一相對(duì)應(yīng)。信號(hào)211中有19位值為0,20位中有1位置1,它與第一代碼的解碼長(zhǎng)度相對(duì)應(yīng)。這種形式的輸出信號(hào)211的優(yōu)點(diǎn)在于輸出信號(hào)211無(wú)需任何解碼,輸出信號(hào)211的一個(gè)單一置位可用作激活信號(hào),而無(wú)需進(jìn)一步解碼,如下文將闡述。
在實(shí)施例中,不需要對(duì)21位DC系數(shù)解碼,因?yàn)樵撌纠O(shè)備被用在主MPEG-2解碼器內(nèi)部,因此在位流中不會(huì)遇到21位代碼。本領(lǐng)域內(nèi)的一般技術(shù)人員都知道,在其他類型的數(shù)據(jù)流中可能會(huì)遇到不同的代碼長(zhǎng)度,而第一長(zhǎng)度解碼器必須在合適的查尋表中處理任何額外所需的長(zhǎng)度。
第二長(zhǎng)度解碼裝置212與移位多路轉(zhuǎn)接器206耦合,以接收多個(gè)編碼數(shù)據(jù)值的子集。第二長(zhǎng)度解碼裝置212包括長(zhǎng)度解碼器212a-212p,分別與第一編碼數(shù)據(jù)值的每個(gè)可能的長(zhǎng)度相對(duì)應(yīng)。每個(gè)長(zhǎng)度解碼器212a-212p同時(shí)工作,對(duì)多個(gè)編碼數(shù)據(jù)值的子集的不同部分作相應(yīng)的解碼。第二長(zhǎng)度解碼裝置212進(jìn)行第二解碼操作,以單獨(dú)確定子集中第二個(gè)編碼數(shù)據(jù)值的長(zhǎng)度。第二編碼數(shù)據(jù)值在子集中緊跟著第一編碼數(shù)據(jù)值。第一和第二解碼操作同時(shí)進(jìn)行。
在此規(guī)定一下,“單獨(dú)確定”指的是通過(guò)把第二代碼作為有別于第一代碼的單獨(dú)代碼進(jìn)行操作來(lái)確定第二代碼的長(zhǎng)度。第一代碼長(zhǎng)度由第一解碼器210來(lái)確定,第二代碼長(zhǎng)度由第二長(zhǎng)度解碼裝置212來(lái)確定。因此,第一和第二代碼并沒(méi)有合成為一個(gè)雙倍長(zhǎng)代碼以供解碼,如美國(guó)專利第5,428,356號(hào)中所述(其中,每個(gè)雙倍長(zhǎng)代碼的解碼是由單個(gè)解碼器通過(guò)查找單個(gè)表來(lái)進(jìn)行的,為的是識(shí)別出預(yù)定的解碼值對(duì))。
例如,在示例的實(shí)施例中,第一代碼可能有2至20位或24位長(zhǎng)。在子集中的位數(shù)按次序被編為0至47。解碼器212a試圖對(duì)這樣一個(gè)串進(jìn)行解碼,該串以數(shù)據(jù)值子集中的第三位(2號(hào)位)開(kāi)頭,如果、也只有當(dāng)?shù)谝豢勺冮L(zhǎng)代碼的長(zhǎng)度是2時(shí),它才是第二編碼數(shù)據(jù)值的第一位。而解碼器212b試圖對(duì)這樣一個(gè)串進(jìn)行解碼,該串以數(shù)據(jù)值子集的第四位(3號(hào)位)開(kāi)頭,如果、也只有當(dāng)?shù)谝豢勺冮L(zhǎng)代碼的長(zhǎng)度是3時(shí),它才是第二編碼數(shù)據(jù)值的第一位。解碼器212c至212r與第一編碼值的順序長(zhǎng)度相對(duì)應(yīng),這是本領(lǐng)域的一般技術(shù)人員都能容易地認(rèn)識(shí)到的。解碼器212s試圖對(duì)這樣一個(gè)串進(jìn)行解碼,該串以數(shù)據(jù)值子集的第21位(20號(hào)位)開(kāi)頭,如果、也只有當(dāng)?shù)谝豢勺冮L(zhǎng)代碼的長(zhǎng)度是20時(shí),它才是第二編碼數(shù)據(jù)值的第一位。最后,解碼器212p試圖對(duì)這樣一個(gè)串進(jìn)行解碼,該串以數(shù)據(jù)值子集的第25位(24號(hào)位)開(kāi)頭,如果、也只有當(dāng)?shù)谝豢勺冮L(zhǎng)代碼的長(zhǎng)度是最大的可能長(zhǎng)度(即24)時(shí),它才是第二編碼數(shù)據(jù)值的第一位。
在圖2所示的實(shí)施例中,當(dāng)?shù)谝唤獯a器210在某個(gè)周期內(nèi)處理內(nèi)部DC系數(shù)時(shí),它只處理一個(gè)代碼長(zhǎng)度。第一和第二AC系數(shù)被解碼的周期是在DC系數(shù)被解碼的周期之后。這種設(shè)計(jì)的好處在于長(zhǎng)度解碼功能208不必在同一個(gè)時(shí)鐘周期內(nèi)對(duì)DC和AC系數(shù)進(jìn)行解碼。于是第二長(zhǎng)度解碼裝置212只需為16種可能的AC系數(shù)長(zhǎng)度從解碼器212a至212p中提供一個(gè)相應(yīng)的解碼器即可。也不必為4種長(zhǎng)度(即12、18、19、20位,它們只出現(xiàn)在DC系數(shù)中而不出現(xiàn)在AC系數(shù)中)提供額外的解碼器212q-212t。本技術(shù)領(lǐng)域內(nèi)的一般技術(shù)人員可知,在另一實(shí)施例(在下文將參照?qǐng)D5進(jìn)行解釋)中,解碼功能508能在解碼器512中對(duì)內(nèi)部DC系數(shù)進(jìn)行解碼,它與第一AC系數(shù)在第二長(zhǎng)度解碼器512中被解碼的同時(shí)進(jìn)行;但是第二長(zhǎng)度解碼過(guò)程中需要額外的解碼器。
再參見(jiàn)圖2,因?yàn)閴K的第二編碼系數(shù)不可能是DC系數(shù),解碼器212a至212p只需使用AC系數(shù)的查尋表B14和B15。解碼器212a至212p由信號(hào)B14、B15、以及B14-B15配置(采用合適的查尋表),這些信號(hào)從控制邏輯216處收到。
根據(jù)本發(fā)明的一個(gè)方面,212a至212p中每個(gè)長(zhǎng)度解碼器根據(jù)相應(yīng)的第一編碼數(shù)據(jù)值可能的長(zhǎng)度值同時(shí)確定一個(gè)對(duì)應(yīng)的第二編碼數(shù)據(jù)值的長(zhǎng)度值。只有被解碼器212a至212p所確定的長(zhǎng)度之一才是第二值的正確長(zhǎng)度。為了消除先有技術(shù)的延時(shí)(等候?qū)Φ谝痪幋a值的長(zhǎng)度進(jìn)行解碼,來(lái)確定從哪里對(duì)第二值進(jìn)行解碼),本發(fā)明同時(shí)確定所有可能的第二值長(zhǎng)度,它與第一值長(zhǎng)度的解碼(第二代碼的每一種可能的長(zhǎng)度都是基于第一代碼分別不同的可能長(zhǎng)度)同時(shí)進(jìn)行。于是,第一值的解碼長(zhǎng)度被用來(lái)選擇一個(gè)已經(jīng)生成的正確的第二解碼長(zhǎng)度值。
通過(guò)使用信號(hào)211的單個(gè)被置位作為激活位,合成長(zhǎng)度解碼器能迅速激活解碼器212a至212p中單個(gè)解碼器的傳送,而無(wú)需對(duì)第一長(zhǎng)度作進(jìn)一步的解碼。本技術(shù)領(lǐng)域內(nèi)的一般技術(shù)人員可以很容易地在合成長(zhǎng)度解碼器中組建一個(gè)邏輯部件,用來(lái)從212a至212p中選擇一個(gè)第二長(zhǎng)度解碼器。
第二長(zhǎng)度解碼裝置的每個(gè)長(zhǎng)度解碼器212a至212p產(chǎn)生一個(gè)對(duì)應(yīng)的輸出信號(hào)213a至213p,代表由長(zhǎng)度解碼器212a至212p所確定的第二編碼數(shù)據(jù)值的長(zhǎng)度。在實(shí)施例中,每個(gè)輸出信號(hào)213a至213p都是一個(gè)16位信號(hào),與第二編碼值的16種可能的長(zhǎng)度(2-11、13-17、24)相對(duì)應(yīng)。長(zhǎng)度12和18-20只能用于DC系數(shù),因此肯定不能與第二編碼值的長(zhǎng)度對(duì)應(yīng)。這個(gè)16位信號(hào)包括15個(gè)0和一個(gè)1,類似于第一解碼器210的20位信號(hào)輸出。
合成長(zhǎng)度解碼器214使用信號(hào)211(第一長(zhǎng)度指示信號(hào))的單個(gè)被置位,通過(guò)對(duì)應(yīng)一個(gè)長(zhǎng)度解碼器212a至212p激活傳遞一個(gè)輸出信號(hào)213a至213p。這個(gè)激活的輸出信號(hào)是對(duì)應(yīng)于第一編碼數(shù)據(jù)值長(zhǎng)度的解碼器輸出信號(hào),信號(hào)211的位因?yàn)樗谩Q而言之,合成長(zhǎng)度解碼器214可以響應(yīng)第一長(zhǎng)度信號(hào)211,來(lái)選擇一個(gè)長(zhǎng)度解碼器212a至212p的輸出信號(hào)。具有選定輸出信號(hào)(信號(hào)213a至213p之一)的長(zhǎng)度解碼器(解碼器212a至212p之一)是對(duì)應(yīng)于第一編碼數(shù)據(jù)值長(zhǎng)度(由第一長(zhǎng)度信號(hào)211指示)的長(zhǎng)度解碼器。被選定的輸出信號(hào)指示了第二編碼數(shù)據(jù)值的實(shí)際長(zhǎng)度。
例如,考慮一個(gè)下面這種情況第一編碼值有3位,第二編碼值有17位。如果第一代碼長(zhǎng)度是3,那么信號(hào)211第二位的值被置為1,信號(hào)211的所有第1位、第3至第20位的值全部為0。在第一值被解碼的同時(shí),解碼器212a試圖將第二編碼值的長(zhǎng)度進(jìn)行解碼,這里假定(非正確地)第一編碼值的長(zhǎng)度是2;解碼器212b將第二編碼值的長(zhǎng)度進(jìn)行解碼,假定(非正確地)第一編碼值的長(zhǎng)度是3;依此類推。合成長(zhǎng)度解碼器214使用信號(hào)211的被置(第二)位來(lái)激活傳遞解碼器212b(第二解碼裝置212中的解碼器212a至212p的第二個(gè))的輸出信號(hào)傳遞。被激活輸出信號(hào)213b具有16位。這樣一來(lái),第二編碼值長(zhǎng)度等于17,輸出信號(hào)213b的第15位的值被置1,而信號(hào)213b的第1至第14位以及第16位被置0。
在示例實(shí)施例中,合成長(zhǎng)度解碼器214輸出一個(gè)40位信號(hào)215。第一編碼值可能的長(zhǎng)度(對(duì)于圖2的AC系數(shù)來(lái)說(shuō),是2-11、13-17、24)能與第二編碼值可能的長(zhǎng)度(2-11、13-17、24,定義在MPEG標(biāo)準(zhǔn)的表B14和B15中)相結(jié)合,產(chǎn)生40個(gè)不同的合成長(zhǎng)度,與合成長(zhǎng)度2-35、37-41及48相對(duì)應(yīng)。40位中有1位被置位,指示第一和第二編碼值的合成長(zhǎng)度。信號(hào)215中其余39位全被置0。這個(gè)40位輸出信號(hào)L3標(biāo)識(shí)了兩個(gè)編碼數(shù)據(jù)值的合成長(zhǎng)度。信號(hào)L1和L3被傳送給VLD運(yùn)行值/水平值解碼功能120(如圖1所示)。
VLD長(zhǎng)度解碼電路同樣也包括一個(gè)移位控制裝置(包括功能218、222、234和236),用于接收第一和第二編碼數(shù)據(jù)值的合成長(zhǎng)度215。移位控制裝置形成了移位控制信號(hào)235,用于確定傳遞給長(zhǎng)度解碼功能208的子集中包含有哪些編碼數(shù)據(jù)值,并將移位控制信號(hào)235傳遞給移位多路轉(zhuǎn)接器206。移位控制裝置同樣也形成一個(gè)移位激活信號(hào)238并將其傳遞給寄存器202和204,以便隨時(shí)將新數(shù)據(jù)加載到移位多路轉(zhuǎn)接器206上,保證移位多路轉(zhuǎn)接器206中的“在流水線上”有足夠多的編碼數(shù)據(jù),從而在長(zhǎng)度解碼的過(guò)程中避免了中斷。
移位控制裝置的寄存器234和236具有移位多路轉(zhuǎn)接器206中一個(gè)位置的6個(gè)最小有效位(LSB)。這些最小有效位指示了1到48之間的一個(gè)比特位置(bit position),那里放有第一編碼數(shù)據(jù)值的最小有效位。
通過(guò)信號(hào)235,將寄存器234中的值加到移位多路轉(zhuǎn)接器206中的多路轉(zhuǎn)接選擇終端206a中去,致使移位多路轉(zhuǎn)接器206提供其開(kāi)始位在信號(hào)235中標(biāo)識(shí)的48位。
通過(guò)信號(hào)237,將寄存器236中的值加至一個(gè)求和生成塊218的輸入端。求和生成塊218的目的是在移位多路轉(zhuǎn)接器206中為DATA_IN數(shù)據(jù)流中的第3和第4編碼數(shù)據(jù)值(即緊跟著第一和第二編碼數(shù)據(jù)值的兩個(gè)值)計(jì)算下一個(gè)起始比特位置。該計(jì)算過(guò)程與長(zhǎng)度解碼器210和第二長(zhǎng)度解碼裝置212的長(zhǎng)度解碼操作同時(shí)進(jìn)行。求和生成塊218包括多個(gè)加法器2201-22040。每個(gè)加法器2201-22040分別與合成長(zhǎng)度215(即合成長(zhǎng)度的每個(gè)可能的值的各個(gè)相應(yīng)的加法器)的一個(gè)不同的值相對(duì)應(yīng)。每個(gè)加法器同時(shí)生成相應(yīng)的候選移位控制信號(hào)。每個(gè)加法器相應(yīng)地將一個(gè)不同的常數(shù)加到第一編碼數(shù)據(jù)值的位置上,這與長(zhǎng)度解碼器212a至212p對(duì)第二編碼數(shù)據(jù)值的長(zhǎng)度解碼發(fā)生在同一時(shí)鐘周期(好處在于加法器復(fù)雜度降低,因?yàn)槊總€(gè)加法器只需加一個(gè)常數(shù))。于是,40個(gè)不同的候選位置被同時(shí)計(jì)算,每個(gè)對(duì)應(yīng)一個(gè)可能的合成長(zhǎng)度。每個(gè)加法器中相應(yīng)的常數(shù)是加法器對(duì)應(yīng)的合成長(zhǎng)度。每個(gè)加法器進(jìn)行一次模為48的加法。每個(gè)加法器的輸出是一個(gè)7位信號(hào)2211-22140。加法器輸出信號(hào)的6個(gè)最小有效位用來(lái)識(shí)別由加法器計(jì)算出的模48的和。最大有效位(MSB)是一個(gè)標(biāo)志位,當(dāng)求和大于或等于48時(shí)它便置位。加法器2201-22040的輸出信號(hào)2211-22140被傳遞給一個(gè)求和選擇器功能222。
當(dāng)求和選擇器222的輸出信號(hào)223中的MSB238被置為1的時(shí)候,第二編碼數(shù)據(jù)值的最大有效位位于移位多路轉(zhuǎn)接器206的48個(gè)最大有效位以內(nèi)。為了使移位多路轉(zhuǎn)接器206裝滿未被解碼的數(shù)據(jù),輸出信號(hào)223的最大有效位238被用來(lái)激活從寄存器202和204向移位多路轉(zhuǎn)接器206加載新數(shù)據(jù)。如上文所述,加載操作導(dǎo)致移位多路轉(zhuǎn)接器206中的數(shù)據(jù)下移,因此,先前的47個(gè)最大有效位現(xiàn)在是47個(gè)最小有效位。另有48位的新數(shù)據(jù)被移入移位多路轉(zhuǎn)接器206的最大有效位位置。
求和選擇器222接收40個(gè)候選移位控制信號(hào),它們代表40個(gè)候選位置。求和選擇器222也從寄存器236接收當(dāng)前多路轉(zhuǎn)換器的位置237、以及接收從外部提供的多路轉(zhuǎn)換器位置240,下文對(duì)兩者都有闡述。合成長(zhǎng)度解碼器214的輸出信號(hào)215被用來(lái)控制求和選擇器222。合成長(zhǎng)度信號(hào)215的唯一被置位被用作激活信號(hào),可激活從求和選擇器222傳送的加法器2201-22040之一的輸出。
在圖2的實(shí)施例中,當(dāng)內(nèi)部DC系數(shù)正在第一長(zhǎng)度解碼器210中被處理時(shí),合成長(zhǎng)度解碼器214輸出一個(gè)與DC系數(shù)長(zhǎng)度相等的合成長(zhǎng)度215,于是第一和第二AC系數(shù)將在下一個(gè)周期中被處理。因此,完全可能在分別的周期中對(duì)內(nèi)部DC系數(shù)長(zhǎng)度進(jìn)行解碼,以僅僅16個(gè)解碼器212a至212p構(gòu)成第二長(zhǎng)度解碼裝置212。
在兩種情況下,40個(gè)輸出信號(hào)2211-22140中可能沒(méi)有一個(gè)被求和選擇器222選中。第一種情況是當(dāng)系統(tǒng)通過(guò)給控制邏輯216傳遞重起信號(hào)而被初始化時(shí),控制邏輯216給求和選擇器222發(fā)出一個(gè)加載外部信號(hào),使得求和選擇器222輸出外部提供的多路轉(zhuǎn)接器位置240??刂七壿?16在下文將參照?qǐng)D3作詳細(xì)解釋。
另一種加法器輸出信號(hào)2211-22140中沒(méi)有一個(gè)被選中的情況是在塊的處理已經(jīng)完成,而且塊尾被檢測(cè)到的時(shí)候??刂七壿?16向求和選擇器222發(fā)出旁路(Bypass)信號(hào)。求和選擇器222選擇了當(dāng)前的多路轉(zhuǎn)接器的位置237作為輸出值223,位置237在旁路輸入終端222a處被檢測(cè)到。于是,移位多路轉(zhuǎn)接器206保持當(dāng)前狀態(tài),而不進(jìn)行進(jìn)一步的索引。
圖3是一個(gè)方框圖,顯示VLD長(zhǎng)度解碼控制邏輯216的典型邏輯結(jié)構(gòu)??刂七壿嫿邮諑讉€(gè)由外部指定的參數(shù),包括BP_OVRD(HOLD)、RESTART、TEST_MODE、MACROBLOCK_INIRA、LUMA/CHROMA、以及INTRA_VLC_FORMAT。解碼功能208為控制邏輯216提供了一個(gè)指示,確定檢測(cè)到的究竟是塊尾(End of Block)還是錯(cuò)誤??刂七壿?16為解碼器210和212a至212p識(shí)別下列參數(shù)(1)系數(shù)是DC系數(shù)還是其他類型;(2)為第一和第二編碼值使用了系數(shù)表B12-B15中的哪個(gè)。
如果信號(hào)BP_OVRD(HOLD)被置于邏輯高狀態(tài)、檢測(cè)到了塊尾(END_OF_BLOCK處于邏輯高狀態(tài))、檢測(cè)到了錯(cuò)誤(ERR_FLAG處于邏輯高狀態(tài)),或者標(biāo)識(shí)位BYPASS先前被置位邏輯高狀態(tài),則“或”門314將把標(biāo)識(shí)位BYPASS置于邏輯高狀態(tài)。一旦標(biāo)識(shí)位BYPASS被置于邏輯高狀態(tài),它將保持那個(gè)狀態(tài),直到信號(hào)RESTART被置于邏輯高為止。標(biāo)識(shí)位BYPASS被傳遞給求和選擇器222(如圖2所示)并使移位多路轉(zhuǎn)接器206保持同一狀態(tài),直到信號(hào)RESET被置于邏輯高狀態(tài)。
當(dāng)信號(hào)END_OF_BLOCK處于邏輯高狀態(tài)時(shí),“或”門316將雙穩(wěn)態(tài)多諧振蕩器318(輸出EOB_FLAG)置于邏輯高狀態(tài),雙穩(wěn)態(tài)多諧振蕩器318保持該狀態(tài)直到信號(hào)RESTART被置于邏輯高狀態(tài)為止。信號(hào)END_OF_BLOCK被提供給輸出控制器140(如圖1所示)。
當(dāng)信號(hào)ERROR處于邏輯高狀態(tài)時(shí),并且信號(hào)END_OF_BLOCK和雙穩(wěn)態(tài)多諧振蕩器312的輸出BYPASS都沒(méi)有處于邏輯高狀態(tài)時(shí),“或”門324將雙穩(wěn)態(tài)多諧振蕩器326的D終端置為邏輯高(為的是將信號(hào)ERR_FLAG置于邏輯高)。信號(hào)ERR_FLAG被提供給輸出控制器140(圖1)。一旦ERR_FLAG已經(jīng)被置于邏輯高狀態(tài),它將保持邏輯高,直到雙穩(wěn)態(tài)多諧振蕩器326被信號(hào)RESTART重置為止。
“或”門328輸出一個(gè)信號(hào)LOAD_EXTERNAL,當(dāng)信號(hào)TEST_MODE或信號(hào)RESTART處于邏輯高狀態(tài)時(shí),該信號(hào)具有邏輯高狀態(tài)。信號(hào)LOAD_EXTERNAL被提供給求和選擇器222(如圖2所示)。當(dāng)信號(hào)LOAD_EXTERNAL處于邏輯高狀態(tài)時(shí),移位多路轉(zhuǎn)接器206將使用外部指定的多路轉(zhuǎn)接器位置(如圖2所示)。
當(dāng)RESTART處于邏輯高狀態(tài)時(shí),雙穩(wěn)態(tài)多諧振蕩器330的D終端被置于邏輯高狀態(tài)(為的是將信號(hào)COEFF_1置于邏輯高狀態(tài))。在塊處理操作一開(kāi)始且DC系數(shù)正在被處理時(shí),信號(hào)COEFF_1被置于邏輯高狀態(tài)。信號(hào)COEFF_1被傳遞給長(zhǎng)度解碼器功能210(去配置解碼器210,以確定DC系數(shù)的長(zhǎng)度),并提供給VLD內(nèi)部DC系數(shù)解碼功能130。
當(dāng)信號(hào)RESTART和MACROBLOCK_INTRA處于邏輯高狀態(tài),并且信號(hào)LUMA/CHROMA處于邏輯低狀態(tài)時(shí),“與”門332將雙穩(wěn)態(tài)多諧振蕩器334的D終端置于邏輯高狀態(tài),為的是將輸出信號(hào)B12置為邏輯高狀態(tài)。這發(fā)生在處理一個(gè)內(nèi)編碼亮度塊的第一(DC)系數(shù)時(shí)。信號(hào)B12被傳遞給長(zhǎng)度解碼器210(圖2)。
當(dāng)信號(hào)RESTART、MACROBLOCK INTRA、和LUMA/CHROMA都處于邏輯高狀態(tài)時(shí),“與”門336將雙穩(wěn)態(tài)多諧振蕩器338的D終端置于邏輯高狀態(tài),為的是將標(biāo)識(shí)位B13置為邏輯高狀態(tài)。這發(fā)生在處理一個(gè)內(nèi)編碼色度塊的第一(DC)系數(shù)時(shí)。信號(hào)B13被傳遞給長(zhǎng)度解碼器210(圖2)。
圖3中編號(hào)為340-354的邏輯部件使用了“DCT系數(shù)VLC表的選擇”,它規(guī)定于MPEG標(biāo)準(zhǔn)的表7-3中。當(dāng)標(biāo)識(shí)位MACRO_BLOCK_INTRA處于邏輯低狀態(tài)時(shí),或者當(dāng)標(biāo)識(shí)位MACRO_BLOCK_INTRA處于邏輯高狀態(tài)而RESTART和INTRA_VLC_FORMAT都處于邏輯低狀態(tài)時(shí),“或”門342將雙穩(wěn)態(tài)多諧振蕩器344的D終端置于邏輯高狀態(tài),為的是將標(biāo)識(shí)位B14置為邏輯高狀態(tài)。這使得標(biāo)識(shí)位B14置位,從而解碼器212a至212p針對(duì)以下塊的系數(shù)使用表B14非內(nèi)編碼塊的系數(shù);內(nèi)編碼塊系數(shù)中的非DC系數(shù),其中值INTRA_VLC_FORMAT是0。
當(dāng)標(biāo)識(shí)位MACRO_BLOCK_INTRA和INTRA_VLC_FORMAT處于邏輯高狀態(tài),而RESTART處于邏輯低狀態(tài)時(shí),“與”門346將雙穩(wěn)態(tài)多諧振蕩器348的D終端置于邏輯高狀態(tài),為的是將標(biāo)識(shí)位B15置為邏輯高狀態(tài)。這使得標(biāo)識(shí)位B15置位,于是解碼器212a至212p針對(duì)內(nèi)編碼塊的系數(shù)(非DC系數(shù))使用表B15,其中值INTRA_VLC_FORMAT是1。
當(dāng)標(biāo)識(shí)位MACROBLOCK_INTRA被置于邏輯低,或者當(dāng)標(biāo)識(shí)位MACROBLOCK_INTRA被置于邏輯高而信號(hào)RESTART被置于邏輯低時(shí),“或”門352將雙穩(wěn)態(tài)多諧振蕩器354的D終端置于邏輯高狀態(tài),為的是將標(biāo)識(shí)位B14_B15置為邏輯高狀態(tài)。因此,每當(dāng)解碼器212a至212p要使用表B14或B15時(shí)(即對(duì)于非內(nèi)編碼宏塊,或內(nèi)編碼宏塊的AC系數(shù)),標(biāo)識(shí)位B14_B15被置于邏輯高狀態(tài)。
圖4是方框圖,顯示圖1所示的典型VLD運(yùn)行值/水平值解碼器120。因?yàn)閷?duì)DC系數(shù)使用了一個(gè)單獨(dú)的功能(VLD內(nèi)部DC系數(shù)解碼器130),塊120在遇到一個(gè)內(nèi)編碼塊時(shí)就不用處理DC系數(shù)。該電路只需處理具有以下長(zhǎng)度的代碼2-11、13-17、以及24。在VLD運(yùn)行值/水平值解碼功能120內(nèi)部用來(lái)處理第一和第二編碼數(shù)據(jù)值的各個(gè)相應(yīng)運(yùn)行值/水平值解碼電路非常類似,它們之間只有一些微小的區(qū)別,下文有解釋。因此,只使用信號(hào)L1(如圖1所示)的16位(即0-9、11-15和19),這16位由圖4左上角的L1(15∶0)指示。
一個(gè)代碼1/數(shù)據(jù)2(Code1/Data2)選擇器410對(duì)第一代碼的長(zhǎng)度L1進(jìn)行處理。如果長(zhǎng)度L1是24位(即16位信號(hào)的最后1位被置位),那么第一值經(jīng)過(guò)了逃逸編碼。16位信號(hào)L1的最后一位被作為信號(hào)ESC_1輸出。對(duì)于一個(gè)逃逸編碼值來(lái)說(shuō),前6位指示該逃逸代碼,接下來(lái)6位是運(yùn)行值(Run value),最后12位是水平值(level value)。于是,當(dāng)長(zhǎng)度是24位時(shí),標(biāo)識(shí)位ESC_1被置于邏輯高狀態(tài)。信號(hào)DATA_IN的6-11號(hào)位(第7至第12位)被作為值RUN_1_ESC進(jìn)行傳遞,當(dāng)標(biāo)識(shí)位ESC_1被置位時(shí),它便由輸出多路轉(zhuǎn)接器150(圖1)輸出。信號(hào)DATA_IN的12-23號(hào)位(第13至第24位)被作為值LEVEL_1_ESC進(jìn)行傳遞,當(dāng)標(biāo)識(shí)位ESC_1被置位時(shí),它便由輸出多路轉(zhuǎn)接器150(圖1)輸出。
對(duì)于其他VLC(非逃逸編碼值)來(lái)說(shuō),因?yàn)閂LC的長(zhǎng)度已經(jīng)被12(最多12)個(gè)最小有效位所識(shí)別,所以有可能最多使用5位就能確定運(yùn)行值和水平值,如圖4中Code_1(4∶0)和Code_2(4∶0)所示。舉例來(lái)說(shuō),在表B-14中,有16個(gè)VLC,其長(zhǎng)度為17位。所有這16個(gè)VLC具有相同的12個(gè)最小有效位,而接下來(lái)的5位分別用來(lái)識(shí)別每個(gè)17位VLC的運(yùn)行值和水平值的不同組合。
Code_1(4∶0)的5位被傳遞給運(yùn)行值解碼器420和水平值解碼器430。解碼器420和430包含了這樣一些查尋表,它們存儲(chǔ)了來(lái)自表B-14和B-15的運(yùn)行值和水平值。當(dāng)信號(hào)B14具有邏輯高值時(shí),使用表B14;當(dāng)信號(hào)B15具有邏輯高值時(shí),使用表B15(如上文所述,參照?qǐng)D2和圖3)。如給定Code_1(4∶0)位、L1、以及信號(hào)B14和B15的話,運(yùn)行值解碼器420和水平值解碼器430可分別確定運(yùn)行值和水平值。
代碼1/數(shù)據(jù)2(Code 1/Data 2)選擇器410也對(duì)第二編碼數(shù)據(jù)值Data_2進(jìn)行分析(基于值L1),并且(1)將第二編碼數(shù)據(jù)值Data_2的前17位(即Data_2(16∶0))傳遞給代碼2(Code2)選擇器450;(2)將Data_2的第7至第12位(即Data_2(11∶6))作為信號(hào)RUN_2_ESC傳遞給寄存器480;以及(3)將Data_2的第13至第24位(即Data_2(23∶12))作為信號(hào)LEVEL_2_ESC傳遞給寄存器480。
VLD運(yùn)行值/水平值解碼器120包括一個(gè)長(zhǎng)度2解碼器440,它能處理信號(hào)L1(15∶0)和合成長(zhǎng)度L3(37∶0),以確定第二編碼數(shù)據(jù)值的長(zhǎng)度。因?yàn)長(zhǎng)1和L3都是以多位信號(hào)的形式提供的,而且其中只有一位被置“1”,所以長(zhǎng)度2解碼器440能使用邏輯門代替減法器來(lái)有效地識(shí)別第二編碼數(shù)據(jù)值的長(zhǎng)度,并以一個(gè)只有一位置“1”的16位值輸出該長(zhǎng)度。與代碼1/數(shù)據(jù)2選擇器410的情況相同的是,對(duì)于一個(gè)經(jīng)過(guò)逃逸編碼的24位編碼數(shù)據(jù)值來(lái)說(shuō),L2的第16位(15號(hào)位)也被置于邏輯低狀態(tài)。本領(lǐng)域內(nèi)的一般技術(shù)人員可以輕易地構(gòu)成長(zhǎng)度2解碼器440。
一個(gè)代碼2選擇器處理信號(hào)L2的方式與選擇器410分離5位Data_2(4∶0)的方式相同,以便分析5位Data_2(4∶0),它們是識(shí)別非逃逸編碼值的運(yùn)行值和水平值所必須的。代碼2選擇器將值Code2(4∶0)傳遞給運(yùn)行值解碼器460和水平解碼器470,其方式與代碼1選擇器410將此信息傳遞給解碼器420和430的方式相同。運(yùn)行值解碼器460和水平值解碼器470與運(yùn)行值解碼器420及水平值解碼器430相同,在此對(duì)其不再贅述。
圖5是一個(gè)方框圖,顯示一個(gè)第二示例長(zhǎng)度解碼功能510。圖5中的部件和信號(hào)與圖2中的相同,并且其索引編號(hào)也一樣,在此不再贅述。
長(zhǎng)度解碼功能510能夠在第二長(zhǎng)度解碼裝置512對(duì)第一AC系數(shù)進(jìn)行解碼的同時(shí)在長(zhǎng)度1解碼器510中對(duì)內(nèi)DC系數(shù)進(jìn)行解碼。如果要提供這種能力的話,需要提供額外解碼器512q至512t,這樣一來(lái),第二長(zhǎng)度解碼裝置512就包括了一個(gè)長(zhǎng)度解碼器,用于處理每一種可能的內(nèi)DC系數(shù)(2-4、6-20)或AC系數(shù)(2-11、13-17、或24)。這意味著有20個(gè)解碼器512a至512t用于處理第一編碼值中所有可能的長(zhǎng)度(2-20或24),而不管第一值代表的是DC還是AC系數(shù)。
在這種配置中,合成長(zhǎng)度L3可能有44個(gè)值,與合成長(zhǎng)度2-44及48相對(duì)應(yīng)。因此,提供了44個(gè)加法器5201-52044(而不是圖2中的40個(gè)加法器),分別與這44種可能的組合長(zhǎng)度相對(duì)應(yīng)。于是,求和選擇器522必須選擇46個(gè)值(44個(gè)可能的長(zhǎng)度、旁路、或外部提供的位置)中的一個(gè)。
參照示例的DCT系數(shù)長(zhǎng)度解碼器對(duì)可變長(zhǎng)解碼器進(jìn)行了敘述。一個(gè)與系數(shù)解碼器100(圖1)相似的電路配置可以被用于對(duì)高級(jí)句法元素進(jìn)行解碼,如MPEG標(biāo)準(zhǔn)的段落6.1至6.13中所定義的。當(dāng)在系數(shù)解碼器100中到達(dá)塊尾時(shí),標(biāo)識(shí)位BYPASS(在上文結(jié)合圖3講述過(guò))被置于邏輯高,控制以及下一代碼的位置都被傳送給高級(jí)句法解碼器。然后,當(dāng)高級(jí)代碼解碼完畢時(shí),信號(hào)RESTART被置于邏輯高狀態(tài),以對(duì)下兩個(gè)DCT系數(shù)進(jìn)行解碼。
另外,盡管本發(fā)明的論述是以實(shí)施例的形式來(lái)進(jìn)行的(該實(shí)施例使用MPEG編碼的視頻數(shù)據(jù)流),但是它在其他形式的可變長(zhǎng)解碼器中也有實(shí)用價(jià)值。
盡管本發(fā)明的論述參照了實(shí)施例,但它并不局限于此。相反,所附的權(quán)利要求應(yīng)當(dāng)被理解成包含了本發(fā)明的其他變型和實(shí)現(xiàn)形式,它們可以由本技術(shù)領(lǐng)域內(nèi)的一般技術(shù)人員在不脫離本發(fā)明的真正精神和范圍的條件下實(shí)施。
權(quán)利要求
1.一種用于在一個(gè)時(shí)鐘周期內(nèi)確定數(shù)據(jù)流中包括的多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的長(zhǎng)度的裝置,其特征在于包括移位裝置,用于接收數(shù)據(jù)流并響應(yīng)移位控制信號(hào)傳遞多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的子集;第一長(zhǎng)度解碼裝置,用于接收所述多個(gè)編碼數(shù)據(jù)值的子集以進(jìn)行第一解碼操作,從而確定所述子集中第一編碼數(shù)據(jù)值的長(zhǎng)度;第二長(zhǎng)度解碼裝置,用于接收所述多個(gè)編碼數(shù)據(jù)值的子集以進(jìn)行第二解碼操作,從而單獨(dú)確定該子集中第二編碼數(shù)據(jù)值的長(zhǎng)度,所述第二編碼數(shù)據(jù)值在子集中緊跟著第一編碼數(shù)據(jù)值,所述第一和第二解碼操作同時(shí)進(jìn)行;合成長(zhǎng)度解碼裝置,它響應(yīng)所述第一和第二編碼數(shù)據(jù)值的長(zhǎng)度輸出一個(gè)第一和第二數(shù)據(jù)值的合成長(zhǎng)度;以及移位控制裝置,所述移位控制裝置響應(yīng)第一和第二數(shù)據(jù)值的合成長(zhǎng)度形成所述移位控制信號(hào),從而在所述移位裝置中識(shí)別下一編碼數(shù)據(jù)值的位置,所述下一編碼數(shù)據(jù)值緊跟著所述第二編碼數(shù)據(jù)值,所述移位控制裝置將所述移位控制信號(hào)傳遞給所述移位裝置。
2.根據(jù)權(quán)利要求1所述的裝置,其中所述的第二長(zhǎng)度解碼裝置包括對(duì)應(yīng)所述第一編碼數(shù)據(jù)值的每個(gè)可能長(zhǎng)度的長(zhǎng)度解碼器,每個(gè)長(zhǎng)度解碼器同時(shí)對(duì)多個(gè)編碼數(shù)據(jù)值的子集的不同部分進(jìn)行解碼;其中,每個(gè)長(zhǎng)度解碼器基于所述第一編碼數(shù)據(jù)值相應(yīng)的可能長(zhǎng)度同時(shí)確定第二編碼數(shù)據(jù)值的相應(yīng)長(zhǎng)度值。
3.根據(jù)權(quán)利要求2所述的裝置,其中所述的第一長(zhǎng)度解碼裝置生成并傳遞一個(gè)第一長(zhǎng)度信號(hào),該第一長(zhǎng)度信號(hào)指示第一編碼數(shù)據(jù)值的長(zhǎng)度,所述第二長(zhǎng)度解碼裝置的每個(gè)長(zhǎng)度解碼器生成并傳遞一個(gè)相應(yīng)的輸出信號(hào),該裝置還包括響應(yīng)第一長(zhǎng)度信號(hào)的裝置選擇所述長(zhǎng)度解碼器的一個(gè)輸出信號(hào)的裝置,該長(zhǎng)度解碼器與所述第一長(zhǎng)度信號(hào)指示的第一編碼數(shù)據(jù)值的長(zhǎng)度相對(duì)應(yīng),所述被選定的輸出信號(hào)指示第二編碼數(shù)據(jù)值的長(zhǎng)度。
4.根據(jù)權(quán)利要求2所述的裝置,其中所述第一長(zhǎng)度解碼裝置為所述第一編碼數(shù)據(jù)值的每種可能的長(zhǎng)度輸出一個(gè)相應(yīng)的位,由所述第一長(zhǎng)度解碼裝置輸出的位之一被置位,該被設(shè)置位與所述第一長(zhǎng)度解碼裝置所確定的第一編碼數(shù)據(jù)值的長(zhǎng)度相對(duì)應(yīng),所述第二長(zhǎng)度解碼裝置的每一個(gè)長(zhǎng)度解碼器生成一個(gè)相應(yīng)的輸出信號(hào),代表由所述長(zhǎng)度解碼器所確定的第二編碼數(shù)據(jù)值的長(zhǎng)度,所述合成長(zhǎng)度解碼裝置響應(yīng)所述被置位激活相應(yīng)長(zhǎng)度解碼器以傳遞輸出信號(hào),所述的相應(yīng)長(zhǎng)度解碼器與所述第一編碼數(shù)據(jù)值的長(zhǎng)度相對(duì)應(yīng),代表該長(zhǎng)度的位被所述第一長(zhǎng)度解碼裝置置位。
5.根據(jù)權(quán)利要求4所述的裝置,其中所述移位控制裝置包括用于所述第一和第二編碼數(shù)據(jù)值的每種可能的合成長(zhǎng)度值的加法器,每個(gè)加法器生成一個(gè)相應(yīng)的候選移位控制信號(hào);所述合成長(zhǎng)度解碼裝置為所述第一和第二編碼數(shù)據(jù)值的每種可能的合成長(zhǎng)度輸出一個(gè)相應(yīng)的位;所述合成長(zhǎng)度解碼裝置輸出的位之一被置位,該被設(shè)置的位對(duì)應(yīng)所述第一和第二編碼數(shù)據(jù)的合成長(zhǎng)度;以及所述移位控制裝置使用由所述合成長(zhǎng)度解碼裝置的輸出置位以激活對(duì)由加法器之一輸出的候選移位控制信號(hào)的傳送,該加法器對(duì)應(yīng)于所述第一和第二編碼數(shù)據(jù)值的合成長(zhǎng)度。
6.根據(jù)權(quán)利要求1所述的裝置,其中所述移位裝置包括一個(gè)移位多路轉(zhuǎn)接器,由于接收所述數(shù)據(jù)流并向所述第一和第二長(zhǎng)度解碼裝置傳遞具有固定數(shù)目的數(shù)據(jù)位;以及所述移位控制信號(hào)識(shí)別所述移位多路轉(zhuǎn)接器內(nèi)固定數(shù)目數(shù)據(jù)位中的一個(gè)第一位置。
7.根據(jù)權(quán)利要求1所述的裝置,其中所述的移位控制裝置包括用于所述第一和第二編碼數(shù)據(jù)值的每個(gè)可能的合成長(zhǎng)度值的加法器,每個(gè)加法器同時(shí)形成并傳遞相應(yīng)的候選移位控制信號(hào);以及響應(yīng)所述第一和第二編碼數(shù)據(jù)值的合成長(zhǎng)度來(lái)選擇候選移位控制信號(hào),并將選中者作為移位控制信號(hào)傳遞給移位裝置的求和選擇裝置,該候選移位控制信號(hào)與第一和第二編碼數(shù)據(jù)值的合成長(zhǎng)度對(duì)應(yīng)。
8.根據(jù)權(quán)利要求7所述的裝置,其中,每個(gè)加法器進(jìn)行相應(yīng)的模算術(shù)運(yùn)算,以形成所述加法器的所述候選移位控制信號(hào)。
9.根據(jù)權(quán)利要求8所述的裝置,其中所述移位裝置包括一個(gè)所述移位多路轉(zhuǎn)接器,用于接收數(shù)據(jù)流并將定長(zhǎng)數(shù)目的連續(xù)數(shù)據(jù)位傳遞給所述第一和第二長(zhǎng)度解碼裝置,所述移位控制信號(hào)在移位多路轉(zhuǎn)接器中識(shí)別定長(zhǎng)數(shù)目的連續(xù)數(shù)據(jù)位的一個(gè)第一位置。
10.根據(jù)權(quán)利要求1所述的裝置,其中所述的數(shù)據(jù)流包括編碼視頻信號(hào),所述第一和第二編碼數(shù)據(jù)值代表視頻信號(hào)的離散余弦變換系數(shù)。
11.一種用于在一個(gè)時(shí)鐘周期內(nèi)對(duì)可變長(zhǎng)編碼數(shù)據(jù)值的數(shù)據(jù)流進(jìn)行解碼的裝置,其特征在于包括用于接收所述數(shù)據(jù)流并響應(yīng)移位控制信號(hào)來(lái)傳遞多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的子集的移位裝置;第一長(zhǎng)度解碼裝置,用于接收多個(gè)編碼數(shù)據(jù)值的子集來(lái)進(jìn)行第一解碼操作,以確定所述子集中的一個(gè)第一編碼數(shù)據(jù)值的長(zhǎng)度;第二長(zhǎng)度解碼裝置,用于接收多個(gè)編碼數(shù)據(jù)值的子集來(lái)進(jìn)行第二解碼操作,從而單獨(dú)確定子集中一個(gè)第二編碼數(shù)據(jù)值的長(zhǎng)度,所述第二編碼數(shù)據(jù)值在所述子集中緊跟著所述第一編碼數(shù)據(jù)值,所述第一、第二解碼操作同時(shí)進(jìn)行;合成長(zhǎng)度解碼裝置,它響應(yīng)所述第一和第二編碼數(shù)據(jù)值的長(zhǎng)度輸出所述第一和第二編碼數(shù)據(jù)值的合成長(zhǎng)度;移位控制裝置,它通過(guò)響應(yīng)所述第一和第二數(shù)據(jù)值的合成長(zhǎng)度形成所述移位控制信號(hào),以便在所述移位裝置中識(shí)別下一編碼數(shù)據(jù)值的位置,所述下一編碼數(shù)據(jù)值緊跟著所述第二編碼數(shù)據(jù)值,所述述移位控制裝置可將所述移位控制信號(hào)傳遞給所述移位裝置;數(shù)值解碼裝置,用于接收多個(gè)編碼數(shù)據(jù)值的子集、所述第一編碼數(shù)據(jù)值的長(zhǎng)度、所述第一和第二編碼數(shù)據(jù)值的合成長(zhǎng)度,并將所述第一和第二編碼數(shù)據(jù)值分別轉(zhuǎn)換成第一和第二解碼值。
12.一種在一個(gè)時(shí)鐘周期內(nèi)確定數(shù)據(jù)流中的多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的長(zhǎng)度的方法,該方法的特征在于包括以下步驟接收所述數(shù)據(jù)流和一個(gè)移位控制信號(hào);進(jìn)行第一解碼操作以確定所述子集中的一個(gè)第一編碼數(shù)據(jù)值的長(zhǎng)度;進(jìn)行第二解碼操作以單獨(dú)確定所述子集中的一個(gè)第二編碼數(shù)據(jù)值的長(zhǎng)度,所述第二編碼數(shù)據(jù)值在所述子集中緊跟著所述第一編碼數(shù)據(jù)值,所述第一、第二解碼操作同時(shí)進(jìn)行;輸出一個(gè)所述第一和第二數(shù)據(jù)值的合成長(zhǎng)度;形成所述移位控制信號(hào)以確定包含在所述子集中的多個(gè)編碼數(shù)據(jù)值;以及將所述移位控制信號(hào)傳遞給所述移位裝置。
全文摘要
本文闡述了一套設(shè)備和方法,可在單個(gè)時(shí)鐘周期里確定一個(gè)數(shù)據(jù)流中多個(gè)可變長(zhǎng)編碼數(shù)據(jù)值的長(zhǎng)度。該設(shè)備包括一個(gè)可接收數(shù)據(jù)流的移位器。一個(gè)第一長(zhǎng)度解碼裝置被耦合以接收多個(gè)編碼數(shù)據(jù)值的子集。一個(gè)第二長(zhǎng)度解碼裝置也同樣耦合以接收多個(gè)編碼數(shù)據(jù)值的子集。一個(gè)合成長(zhǎng)度解碼器響應(yīng)第一和第二編碼數(shù)據(jù)值的長(zhǎng)度以輸出它們的合成長(zhǎng)度。一個(gè)移位控制器響應(yīng)該合成長(zhǎng)度形成移位控制信號(hào)。移位控制器將移位控制信號(hào)傳遞給移位器。
文檔編號(hào)H04N7/50GK1171699SQ97103738
公開(kāi)日1998年1月28日 申請(qǐng)日期1997年3月31日 優(yōu)先權(quán)日1996年3月29日
發(fā)明者理查·西塔, 愛(ài)德華·M·布羅茲 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社